麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Regex > 正文

js中string之正則表達式replace方法詳解

2020-03-16 20:54:48
字體:
來源:轉載
供稿:網友

replace方法是javascript涉及到正則表達式中較為復雜的一個方法,嚴格上說應該是string對象的方法。只不過牽扯到正則的時候比較多一些。需要我們靈活的使用。

語法: stringObj.replace(regexp/substr,replacement);

第一個參數:必需。字符串中要替換的子串或正則RexExp;

第二個參數:必需,一個字符串值,規定了替換文本或生成替換文本的函數。

返回值:注意它的返回值是一個新的字符串,并沒有更改原有字符串,是用 replacement 替換了 regexp 的第一次匹配或所有匹配之后得到的。

所以根據它的參數的不同分為很多種情況,以下一一對各種情況加以分析:

NO.1 兩個參數都是字符串

var str1 = '這是一段原始文本,需要替換的內容"這要替換"!';var newStr = str1.replace('這要替換','need replace');console.log( newStr );  //輸出:  這是一段原始文本,需要替換的內容"need replace"!

上面的例子中第二個參數字符串'need replace',替換掉了第一個參數字符串'這要替換'。這是最簡單的一種形式。

NO.2 第一個參數是正則,第二個參數是字符串

var str2 = '這是一段原始文本,需要替換的內容"ac這要替換bb"!';var newStr = str2.replace( /([a-z])+/g,'qqq' );console.log( newStr );  //輸出:  這是一段原始文本,需要替換的內容"qqq這要替換qqq"!

上面的例子字符串'qqq',替換了正則匹配的內容。如果 regexp 具有全局標志 g,那么 replace() 方法將替換所有匹配的子串。否則,它只替換第一個匹配子串。

NO.3 第一個參數是正則,第二個參數是帶$符的字符串

var str3 = '這是一段原始文本,"3c這要替換4d"!';var newStr = str3.replace( /([0-9])([a-z])/g,"$1" );console.log( newStr );  //輸出:  這是一段原始文本,"3這要替換4"!';

js,string,replace,js正則表達式replace,正則表達式

上面的例子,$1表示regexp中的第一個子表示即([0-9])匹配單個數字,同理若是$2則表示第二個子表示即([a-z]);所以,'3c'這個匹配到的整體被第一個子表示說表示的'3'替換,'4d'被第一個子表示匹配的數字'4'所替換。其他幾個同理可得:

(/([0-9])([a-z])/g,”$2″)—>////輸出: 這是一段原始文本,”c這要替換d”!'; (3c和4d被相應的第二個子表示匹配出來的c和d替換)(/([0-9])([a-z])/g,”$'”)—>////輸出: 這是一段原始文本,”這要替換d”!這要替換”!”!'; (3c被3c右側文本替換,4d右側是”!替換,所以出現倆次)

NO.4 第一個參數是正則,第二個參數函數

var str4 = '這是一段原始文本,需要替換的內容"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 );  //這是一段原始文本,需要替換的內容"**這要***替換*****"!

上面的例子函數的第一個參數為匹配的regexp的整體,根據長度函數返回值為相應替換的文本;

NO.5 第一個參數是正則且有子表達式,第二個參數函數且帶有多個參數

var str5 = '這是一段原始文本,需要替換的內容"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
這是一段原始文本,需要替換的內容"3c這要替換4d"!
4d
4
d
23

這是一段原始文本,需要替換的內容"3c這要替換4d"!

上面的例子第一個參數arg1表示匹配的整體,arg2表示第一個子表達式,arg3表示第二個子表達式,接下來的參數arg4是一個整數,聲明了表示子匹配在 stringObject 中出現的位置。最后一個參數是 stringObject 本身。

以上就是replace方法各種可能的情況。確實是一個需要深入理解的方法,不過確實也很強大的一個方法,值得深入研究!


注:相關教程知識閱讀請移步到正則表達式頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久国产夫妻视频 | 久久精品在线免费观看 | 日韩av电影免费在线观看 | 美女黄色毛片免费看 | 国产精品视频导航 | 第一区免费在线观看 | 亚洲精品久久久久久久久久 | 日韩精品久久久久久久九岛 | 国产成人高潮免费观看精品 | 中文字幕在线看第二 | 精品亚洲va在线va天堂资源站 | 亚洲aⅴ在线观看 | 激情久久免费视频 | 久草免费资源视频 | 国产乱淫a∨片免费视频 | 一本色道久久久888 香蕉视频99 | 91国在线高清视频 | 久久久成人精品视频 | 国产成年人网站 | 一级国产航空美女毛片内谢 | 中文字幕综合在线观看 | 欧美性生活久久久 | 蜜桃网站在线 | h色网站免费观看 | 一级在线| 日韩视频在线不卡 | 欧美一级毛片免费观看视频 | 成人一级黄色 | 视频一区二区在线观看 | 亚洲一区二区免费视频 | 他也色在线视频 | 欧美14一15sex性hd| 久草在线免费资源站 | 最新av网址在线观看 | 国产一级在线观看视频 | 久久精品久久精品久久精品 | 中文字幕激情视频 | 一区二区三区日韩电影 | 国产女做a爱免费视频 | 日日摸夜夜添夜夜添牛牛 | 国产黄色录像片 |