替换JavaScript don'的函数;行不通
我有下一个javascript代码:替换JavaScript don'的函数;行不通,javascript,Javascript,我有下一个javascript代码: csvReport.name = "My New Report"; $scope.filename = csvReport.name.replace(" ", "_"); 但是我得到了$scope.filename=我的新报告。并不是所有的空格都被替换 它是什么?您可以使用: 您可以使用带有全局开关(g)的正则表达式来实际替换所有实例,如下所示: csvReport.name = "My New Report"; $scope.filename = csv
csvReport.name = "My New Report";
$scope.filename = csvReport.name.replace(" ", "_");
但是我得到了$scope.filename=我的新报告
。并不是所有的空格都被替换
它是什么?您可以使用:
您可以使用带有全局开关(
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);
};
}
这样,您就有了可以处理整个字符串的附加函数。
.replace
将始终替换第一个出现的字符串,除非您使用这样的正则表达式:
csvReport.name.replace(/ /g, "_");
你为什么要给这个
性能
?下面所有的答案都是正确的,但没有一位作者愿意投票给其他正确的答案。。。这有点令人失望:(这对空格很有用,但如果他想替换
这样的字符,这是很危险的,因为
意味着regExp中的每个字符。但是,您可以使用regExp在函数中转义。或者在调用函数时转义:.replaceAll('\.','\u')
@Karl AndréGagnon我修改了我的答案,为regexp
特殊字符添加了转义replace
字符串。
csvReport.name.replace(/ /g, "_");