Day01:字符串去头尾空格 至少3种代码

方法1:str.replace 正则匹配法

let str = "   2022-11-01  ";
let newStr = str.replace(/^\s*|\s*$/g, "");
console.log(str);    //   2022-11-01  
console.log(newStr); //2022-11-01

方法2:str.trim()法

 let str = "   2022-11-01  ";
 let newStr = str.trim();
 console.log(str);     //   2022-11-01  
 console.log(newStr);  //2022-11-01

方法3:使用 charAt() subString() indexOf()组合实现。先从头遍历,把前面的空格去掉,在从后面遍历,把后面的空格去掉。最后还要判断是否本身就是一个空格字符串 ' ' .因为空字符走不进去下面的两段遍历。

        let str = "   2022-11-01  ";
        String.prototype.trim1 = function () {
            let str = this,
            whitespace = ' ';
            for (let i = 0;i<str.length; i++) {
                if (whitespace.indexOf(str.charAt(i)) === -1) {
                    str = str.substring(i);
                    break;
                }
            }
            for (i = str.length - 1; i >= 0; i--) {
                if (whitespace.indexOf(str.charAt(i)) === -1) {
                    str = str.substring(0, i + 1);
                    break;
                }
            }
            return whitespace.indexOf(str.charAt(0)) === -1 ? str : '';
        }
        console.log(str.trim1());//2022-11-01

 方法4:利用遍历字符串+slice方法

// js去除头尾空格
    let str = "  2020-11-2 "
    function trim(str){
        let start = 0
        let end = 0
        for(let i=0;i<str.length;i++){
            if(str[i]!=' '){
                start = i
                break //跳出整个循环,不再继续进行
            }
        }
        for(let i=str.length-1;i>0;i--){
            if(str[i]!=' '){
                end = i+1
                break
            }
        }
        return str.slice(start,end)
    }
    console.log(trim(str))

slice(start, end) 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。

使用 start(包含) 和 end(不包含) 参数来指定字符串提取的部分。

start 参数字符串中第一个字符位置为 0, 第二个字符位置为 1, 以此类推,如果是负数表示从尾部截取多少个字符串。

end 参数如果为负数,-1 指字符串的最后一个字符的位置,-2 指倒数第二个字符,以此类推。

猜你喜欢

转载自blog.csdn.net/weixin_47075145/article/details/127626327