我在javascript中有下一个代码:
csvReport.name = "My New Report";
$scope.filename = csvReport.name.replace(" ", "_");
但我明白了$scope.filename = My_New Report
。并非所有空格都替换。
它是什么?
我在javascript中有下一个代码:
csvReport.name = "My New Report";
$scope.filename = csvReport.name.replace(" ", "_");
但我明白了$scope.filename = My_New Report
。并非所有空格都替换。
它是什么?
.replace
将始终替换第一次出现,除非您使用这样的正则表达式:
csvReport.name.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);
};
}
这样,您就有了适用于整个字符串的附加功能。