我有下面的代碼在javascript:更換的JavaScript功能不工作
csvReport.name = "My New Report";
$scope.filename = csvReport.name.replace(" ", "_");
,但我得到$scope.filename = My_New Report
。並非所有的空間都替代
這是什麼?
我有下面的代碼在javascript:更換的JavaScript功能不工作
csvReport.name = "My New Report";
$scope.filename = csvReport.name.replace(" ", "_");
,但我得到$scope.filename = My_New Report
。並非所有的空間都替代
這是什麼?
.replace
會經常更換,除了第一次出現,如果你使用正則表達式這樣的:
csvReport.name.replace(/ /g, "_");
Thanks!It Works!:) – IFrizy
您可以使用正則表達式與全球開關(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);
};
}
這種方式,你有一個對整個字符串工作方式的其他功能。
這項工作的空間,但它是危險的,如果他想替換像''的字符。 ''因爲'。'表示regExp中的每個字符,但是你可以用正則表達式在函數中轉義,或者在調用函數時將其轉義:'.replaceAll('\\。','_')' –
@ Karl-AndréGagnon我修改了我的答案,爲'regexp'特殊字符添加了轉義'replace'字符串。 – maketest
你爲什麼標籤這個'performance'? – crashmstr
以下所有答案都是正確的,但沒有一個作者喜歡upvote其他正確的......這有點令人失望:( –