js 字符串 replace replaceAll


  • js中字符串的替換
var str = "男的女的老的少的";
alert(str.replace('的',''));

可以看到替換后的str的值為"男女的老的少的",replace(str1,str2)方法替換的只是第一個匹配的字符串,那么如何實現替換全部匹配的字符串呢?
在java語言中有給出的replaceAll方法能夠實現這樣的功能,但很遺憾javascript沒有提供這樣的方法,但replace方法要比我們想象的強大,實際上通過它我們可以實現我們的需求的。

給出replace的語法定義

stringObj.replace(rgExp, replaceText)

其中stringObj是字符串(string),reExp可以是正則表達式對象(RegExp)也可以是字符串(string),replaceText是替代查找到的字符串。

第一個例子是參數rgExp 為字符串的情況,下面我們用正則表達式實現全部替換的功能

var str = "男的女的老的少的";
alert(str.replace(new RegExp(/(的)/g),''));

以上實現了字符串的全部替換,但這種正則表達式是有局限的,匹配的是一些特定的字符串,如何匹配動態的字符串呢?

var replaceStr = "的";
alert(str.replace(new RegExp(replaceStr,'gm'),''));

這樣我們就完成了匹配字符串的動態賦值。

另外還有其他的方法實現全部替換

alert(str.split(replaceStr).join(''));

網上查到一種方法,感覺不可取

function ReplaceAll(str, sptr, sptr1){
                    while (str.indexOf(sptr) >= 0){
                       str = str.replace(sptr, sptr1);
                    }
                    return str;
             }

調用這個方法執行以下代碼的話,會陷入死循環的

var ss = 'abc';
alert(ReplaceAll(ss,'b','bc'));

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM