我們平常對字元串進行替換的時候
//一次替換
var str="Welcome Microsoft!"
str.replace(/Microsoft/,"W3School") //Welcome W3School!
//隻會替換找到的第一個
//全局替換
var str="Welcome to MicrosoftMicrosoft! ";
str.replace(/Microsoft/g,"W3School") //Welcome to W3SchoolW3School!
項目裡遇到需要傳入一個變量,然後在替換
var text="Microsoft";
var str="Welcome to MicrosoftMicrosoft! ";
str.replace(new RegExp(text,'g'),"W3School");//Welcome to W3SchoolW3School!
封裝
String.prototype.replaceAll=function(preVal,replaceVal){
return this.replace(new RegExp(preVal,'g'),replaceVal);
}
遇到的問題
這樣操作 直接 areaData = areaData.replace(new RegExp(i, "g"), formValue[i]);無效
需要轉義一下
for (i in formValue) {
if (formValue[i] != '') {
areaData = areaData.replace(new RegExp('\\'+i, "g"), formValue[i]);
console.log(areaData);
} else {
formLength += i;
}
}