replace參數詳解?
replace第一個參數一般放置的是正則表達式或字符串,用來匹配想要替換的文本;第二個參數一般我們放入的是字符串,用來替換掉正則匹配到的文本。
第一種方法一般是放一個字符串在第二個參數中,直接用于替換所匹配到的字符;
第二種方法比較高階的技巧,第一個參數為正則表達式,第二個參數使用$字符可以取得捕獲括號中的內容,再進行相關操作。
字符替換文本:
$& 與正則相匹配的字符串
$` 匹配字符串左邊的字符
$’ 匹配字符串右邊的字符
$1,$2,$,3,…,$n 匹配結果中對應的分組匹配結果
還有第三種方法, 給第二個參數傳入匿名函數,函數的返回值用做替換的字符。
匿名函數有4個參數可以傳入,當然,這些參數都不是必須要傳的。
第一個參數:正則所匹配到的字符;
第二個參數:捕獲到的字符;
第三個參數:正則匹配到的每段字符的第一個字符的索引;
第四個參數:用于匹配的字符串主體;
第四個參數:用于匹配的字符串主體;
例子:
第一種:
"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>