replace參數(shù)詳解?
replace第一個參數(shù)一般放置的是正則表達式或字符串,用來匹配想要替換的文本;第二個參數(shù)一般我們放入的是字符串,用來替換掉正則匹配到的文本。
第一種方法一般是放一個字符串在第二個參數(shù)中,直接用于替換所匹配到的字符;
第二種方法比較高階的技巧,第一個參數(shù)為正則表達式,第二個參數(shù)使用$字符可以取得捕獲括號中的內(nèi)容,再進行相關(guān)操作。
字符替換文本:
$& 與正則相匹配的字符串
$` 匹配字符串左邊的字符
$’ 匹配字符串右邊的字符
$1,$2,$,3,…,$n 匹配結(jié)果中對應(yīng)的分組匹配結(jié)果
還有第三種方法, 給第二個參數(shù)傳入匿名函數(shù),函數(shù)的返回值用做替換的字符。
匿名函數(shù)有4個參數(shù)可以傳入,當然,這些參數(shù)都不是必須要傳的。
第一個參數(shù):正則所匹配到的字符;
第二個參數(shù):捕獲到的字符;
第三個參數(shù):正則匹配到的每段字符的第一個字符的索引;
第四個參數(shù):用于匹配的字符串主體;
第四個參數(shù):用于匹配的字符串主體;
例子:
第一種:
"abrde".replace("r", "c");
"abrde".replace(/r/, "c");
第二種:
var sStr='討論一下正則表達式中的replace的用法';
sStr.replace(/正則表達式/,'《$&》');
// 得到:"討論一下《正則表達式》中的replace的用法"
var sStr='討論一下正則表達式中的replace的用法';
sStr.replace(/正則表達式/,'《$`》');
// 得到:"討論一下《討論一下》中的replace的用法"
var sStr='討論一下正則表達式中的replace的用法';
sStr.replace(/正則表達式/,"《$'》");
// 得到:"討論一下《中的replace的用法》中的replace的用法"
var sStr='討論一下正則表達式中的replace的用法';
sStr.replace(/(正則)(.+?)(式)/,"《$1》$2<$3>");
// 得到:"討論一下《正則》表達<式>中的replace的用法"
第三種:
字符串:<h1>哈哈哈</h1>
正則表達式:/&([^&;]+);/g
a:< b:lt c:0 d:<h1>哈哈哈</h1>
a:> b:gt c:6 d:<h1>哈哈哈</h1>
a:< b:lt c:14 d:<h1>哈哈哈</h1>
a:> b:gt c:21 d:<h1>哈哈哈</h1>