使用替换/正则表达式在JavaScript中编写修剪

时间:2012-11-08 03:46:11

标签: javascript

我正在尝试创建一个从字符串中删除多余空格的程序。我正在尝试制作我期望需要的前两个功能。在做了一些测试并咨询了同学后,我无法弄清楚第二个函数出了什么问题(我相信它是第二个函数)?

var isWhiteSpace = function(char) {
    var out = false;
    if (char === ' ' || char === '\f' || char === '\n' || char === '\r' || char === '\t') {
        out = true;
    }
    return out;
};

var removeLeadingSpaces = function(s) {
    var i;
    for (i = 0; i < s.length; i++) {
        if (isWhiteSpace(s.charAt(i))) {
            s.replace(s.charAt(i), '');
        }
    }
    return s;
};

2 个答案:

答案 0 :(得分:3)

s = s.replace(/^\s+/,"");比运行循环更简单。

这是因为javascript的正则表达式已经知道什么是空格(\s)并且知道如何从字符串的开头(^)拉出来并且可以自己递归({{1} })。

答案 1 :(得分:1)

使用s=s.replace(s.charAt(i), '');

replace方法不会修改原始字符串 - 它会返回一个值。