js的trim函数实现

js没有去掉字符串两侧空格的方法。要实现这一效果目前想到2种方式,一个是正则匹配,还一个是循环字符串判断两边是否空格。
当然还要注意区分英文空格、中文空格、tab空格、连续空格的概念,这里只以英文空格为例。

正则方式:

function trim(str) {
    return str.replace(/^\s*/,"");//^符号是开始
    return str.replace(/\s*$/,"");//$符号是结束
    return str.replace(/(^\s*)|(\s*$)/g,""); //两边
}

循环方式:

function trim(str) {
    let startIndex = -1;
    for(let i = 0; i < str.length; i++) {
        if(str.charAt(i) !== ' ') {
            startIndex = i;
            break;
        }
    }
    if(startIndex === -1) { //全空格
        return '';
    }
    let endIndex = str.length - 1;
    for(let i = endIndex; i >= 0; i--) {
        if(str.charAt(i) !== ' ') {
            endIndex = i;
            break;
        }
    }
    return str.slice(startIndex, endIndex);
}
posted @ 2019-12-20 13:47  raven-moon  阅读(630)  评论(0编辑  收藏  举报