天天看點

string.replace 用變量替換遇到的問題

我們平常對字元串進行替換的時候

//一次替換
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;
        }


    }           

繼續閱讀