這應該爲你工作。
它要求兩個數組具有相同數量的元素。
function REArray(contents,sArray,rArray) {
if(sArray.length == rArray.length) {
for(i=0;i<sArray.length;i++) {
rx_this = new RegExp(sArray[i],"g");
contents = contents.replace(rx_this,rArray[i]);
}
}
return contents;
}
var sx = ["cat","best","\\d"];
var rx = ["dog","worst","7"];
console.log(REArray("My cat is the best. He is 3.",sx,rx));
在JavaScript中存儲正則表達式的變量時,必須轉義反斜槓。 (\w
變成\\w
,\[b\]
變成\\[b\\]
等)。它可能會讓人很頭疼。 (匹配轉義斜槓\\
看起來像\\\\
)。
有些人喜歡在其正則表達式中使用/
,並使用替換將它們轉換爲\\
。
像這樣的事情
var rx_this;
function REArray(contents,sArray,rArray) {
if(sArray.length == rArray.length) {
for(i=0;i<sArray.length;i++) {
rx_this = sArray[i].replace(/\//g,"\\");
rx_this = new RegExp(rx_this,"g");
contents = contents.replace(rx_this,rArray[i]);
}
}
return contents;
}
var sx = ["cat","best/.","[3]"];
var rx = ["dog","worst","7"];
console.log(REArray("My cat is the best. He is 3.",sx,rx));
或許你可以從https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions學習這是一個非常不錯的文章,你可以開始 –
的JavaScript不提供與'.replace'一起使用數組pf表達式的選項。也許你可以''用'|'加入數組(模式)來創建一個正則表達式。 –
我不清楚你想要做什麼。菲利克斯的回答是你想要的,還是你想要別的東西? –