在javascript替換字符串使用的是replace函數,但在實際使用過程中卻發現該函數只會替換被匹配的第一個字符,這就讓人很不爽了,在php語言中,replace可是實現全局匹配並替換的。沒辦法,仔細研究了下,發現還是有其他辦法實現全局匹配並替換的。
(1)其實replace本身也可以實現這種功能的,但要通過正則的形式加個參數g,例如:
復制代碼 代碼如下:
str.replace(/www.baidu.com/g,'www.jb51.net');
或者:
復制代碼 代碼如下:
str.replace(new RegExp('www.baidu.com','gm'),'www.jb51.net');
將 str 字符中的 www.baidu.com 全部替換為 www.jb51.net
(2)自己擴展js函數庫,自創函數replaceall方法實現全局匹配並替換的功能。如下:
復制代碼 代碼如下:
String.prototype.replaceall=function(s1,s2){
return this.replace(new RegExp(s1,"gm"),s2);
}
這個其實也是利用了方法一的思想。舉例如下(這裡也實現了同上的功能,只不過相比方法一更為直觀而已):
復制代碼 代碼如下:
str.replace('www.baidu.com','www.jb51.net');
以上所述就是本文的全部內容了,希望大家能夠喜歡。