replace()方法這麼處理:
var sentence = 'Felix, Lanny, Felix, Felix, John';
console.log(sentence.replace('Felix', 'Vincent'));
//結果: Vincent, Lanny, Felix, Felix, John結果發現:只有第一個符合的舊字串被取代。
若要像 C# 般將句子內所有符合的舊字串都被取代,需要搭配正規式處理:
//方法1
var newSentence = sentence.replace(/Felix/g, "Vincent");
console.log(newSentence);
//結果: Vincent, Lanny, Vincent, Vincent, John
//方法2
var newSentence2 = sentence.replace(new RegExp("Felix", "g"), "Marry");
console.log(newSentence2);
//結果: Marry, Lanny, Marry, Marry, John;
好懶~那就寫成擴充方法吧!
若不想每次遇到以上需求時都得寫成這麼複雜的運算式 (懶~哈),可將上述方法寫成String擴充方法:
String.prototype.replaceAll = function(oldString, newString) {
var target = this;
return target.replace(new RegExp(oldString, 'g'), newString);
};
這麼一來,以後只要使用
sentence.replaceAll('Felix', 'Peter')就搞定囉。參考來源:
沒有留言 :
張貼留言
注意:只有此網誌的成員可以留言。