替换JavaScript的功能不起作用

时间:2013-10-25 12:18:24

标签: javascript

我在javascript中有下一个代码:

csvReport.name = "My New Report";
$scope.filename = csvReport.name.replace(" ", "_");

但我得$scope.filename = My_New Report。并非所有空格都在替换。

这是什么?

4 个答案:

答案 0 :(得分:5)

您可以将replaceregular expression

一起使用
"My New Report".replace(/ /g,'_')

Demo

答案 1 :(得分:5)

.replace将始终替换第一次出现,除非您使用正则表达式:

csvReport.name.replace(/ /g, "_");

答案 2 :(得分:4)

您可以使用带有全局开关(g)的正则表达式来实际替换所有实例,如下所示:

csvReport.name = "My New Report";
$scope.filename = csvReport.name.replace(/ /g, "_");

答案 3 :(得分:2)

函数replace仅替换第一个参数的第一个外观。您可以使用正则表达式替换整个字符串。

试试这个:

if (!String.replaceAll) {
    String.prototype.replaceAll = function(replace, value) {
        var regexpStr = replace.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&")
        return this.replace(new RegExp(regExpStr, 'g'), value);
    };
}

通过这种方式,您可以使用适用于整个字符串的附加功能。