JavaScript的替换功能不起作用

Replace function of JavaScript don't work

本文关键字:不起作用 功能 替换 JavaScript      更新时间:2023-09-26

我在javascript中有下一个代码:

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

但我得到$scope.filename = My_New Report.并非所有空间都可替换。

这是什么?

> .replace将始终替换第一个匹配项,除非你使用这样的正则表达式:

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

您可以使用替换为正则表达式:

"My New Report".replace(/ /g,'_')

演示

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

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

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

试试这个:

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

这样你就有了适用于整个字符串的附加函数。