這篇文章主要為大家展示了“js中string之正則表達式replace方法怎么用”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“js中string之正則表達式replace方法怎么用”這篇文章吧。
創(chuàng)新互聯(lián)公司主營永靖網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app軟件開發(fā)公司,永靖h5微信小程序定制開發(fā)搭建,永靖網(wǎng)站營銷推廣歡迎永靖等地區(qū)企業(yè)咨詢replace方法是javascript涉及到正則表達式中較為復(fù)雜的一個方法,嚴格上說應(yīng)該是string對象的方法。只不過牽扯到正則的時候比較多一些。需要我們靈活的使用。
語法: stringObj.replace(regexp/substr,replacement);
第一個參數(shù):必需。字符串中要替換的子串或正則RexExp;
第二個參數(shù):必需,一個字符串值,規(guī)定了替換文本或生成替換文本的函數(shù)。
返回值:注意它的返回值是一個新的字符串,并沒有更改原有字符串,是用 replacement 替換了 regexp 的第一次匹配或所有匹配之后得到的。
所以根據(jù)它的參數(shù)的不同分為很多種情況,以下一一對各種情況加以分析:
NO.1 兩個參數(shù)都是字符串
var str1 = '這是一段原始文本,需要替換的內(nèi)容"這要替換"!'; var newStr = str1.replace('這要替換','need replace'); console.log( newStr ); //輸出: 這是一段原始文本,需要替換的內(nèi)容"need replace"!
上面的例子中第二個參數(shù)字符串'need replace',替換掉了第一個參數(shù)字符串'這要替換'。這是最簡單的一種形式。
NO.2 第一個參數(shù)是正則,第二個參數(shù)是字符串
var str2 = '這是一段原始文本,需要替換的內(nèi)容"ac這要替換bb"!'; var newStr = str2.replace( /([a-z])+/g,'qqq' ); console.log( newStr ); //輸出: 這是一段原始文本,需要替換的內(nèi)容"qqq這要替換qqq"!
上面的例子字符串'qqq',替換了正則匹配的內(nèi)容。如果 regexp 具有全局標志 g,那么 replace() 方法將替換所有匹配的子串。否則,它只替換第一個匹配子串。
NO.3 第一個參數(shù)是正則,第二個參數(shù)是帶$符的字符串
var str3 = '這是一段原始文本,"3c這要替換4d"!'; var newStr = str3.replace( /([0-9])([a-z])/g,"$1" ); console.log( newStr ); //輸出: 這是一段原始文本,"3這要替換4"!';
上面的例子,$1表示regexp中的第一個子表示即([0-9])匹配單個數(shù)字,同理若是$2則表示第二個子表示即([a-z]);所以,'3c'這個匹配到的整體被第一個子表示說表示的'3'替換,'4d'被第一個子表示匹配的數(shù)字'4'所替換。其他幾個同理可得:
(/([0-9])([a-z])/g,”$2″)—>////輸出: 這是一段原始文本,”c這要替換d”!'; (3c和4d被相應(yīng)的第二個子表示匹配出來的c和d替換)(/([0-9])([a-z])/g,”$'”)—>////輸出: 這是一段原始文本,”這要替換d”!這要替換”!”!'; (3c被3c右側(cè)文本替換,4d右側(cè)是”!替換,所以出現(xiàn)倆次)
NO.4 第一個參數(shù)是正則,第二個參數(shù)函數(shù)
var str4 = '這是一段原始文本,需要替換的內(nèi)容"aa這要bbb替換ccccc"!'; var newStr = str4.replace( /[a-z]+/g,function ($0){ var str = ''; for (var i = 0; i < $0.length; i++) { str += '*'; }; return str; } ); console.log( newStr ); //這是一段原始文本,需要替換的內(nèi)容"**這要***替換*****"!
上面的例子函數(shù)的第一個參數(shù)為匹配的regexp的整體,根據(jù)長度函數(shù)返回值為相應(yīng)替換的文本;
NO.5 第一個參數(shù)是正則且有子表達式,第二個參數(shù)函數(shù)且?guī)в卸鄠€參數(shù)
var str5 = '這是一段原始文本,需要替換的內(nèi)容"3c這要替換4d"!'; var newStr = str5.replace( /([0-9])([a-z])/g,function (arg1,arg2,arg3,arg4,arg5){ console.log( arg1 ); console.log( arg2 ); console.log( arg3 ); console.log( arg4 ); console.log( arg5 ); } );
輸出:
3c
3
c
17
這是一段原始文本,需要替換的內(nèi)容"3c這要替換4d"!
4d
4
d
23
這是一段原始文本,需要替換的內(nèi)容"3c這要替換4d"!
上面的例子第一個參數(shù)arg1表示匹配的整體,arg2表示第一個子表達式,arg3表示第二個子表達式,接下來的參數(shù)arg4是一個整數(shù),聲明了表示子匹配在 stringObject 中出現(xiàn)的位置。最后一個參數(shù)是 stringObject 本身。
以上是“js中string之正則表達式replace方法怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)頁標題:js中string之正則表達式replace方法怎么用-創(chuàng)新互聯(lián)
路徑分享:http://aaarwkj.com/article26/pppcg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、小程序開發(fā)、網(wǎng)站內(nèi)鏈、動態(tài)網(wǎng)站、軟件開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)