$num
javascript var a = 'javascript'; var b = a.replace(/(java)(script)/gi, '$2-$1'); console.log(b);//script-java
/
開始和結尾,中間爲要匹配的表達式g
表示全局搜索,i
表示忽略大小寫,m
表示多行匹配$1
、$2
表示第1個和第2個子表達式(用小括號包裹)匹配到的文本,如例子所見,$1
爲java
,$2
爲script
$&
javascript var a = 'javascript'; var b = a.replace(/a/gi, '$&-$&'); console.log(b);//ja-ava-ascript
$&
表示匹配到的文本,即$&
匹配到a
javascript
中的a
替換爲a-a
,因此最終結果爲ja-ava-ascript
$`
javascript var a = 'javascript'; var b = a.replace(/(script)/gi, '$&-$`'); console.log(b);//javascript-java
$`
表示匹配到的文本的左側文本,即$`
匹配到java
script
替換爲script-java
,因此最終結果爲javascript-java
$'
javascript var a = 'javascript'; var b = a.replace(/(java)/gi, '$&-$\''); console.log(b);//java-scriptscript
$'
表示匹配到的文本的右側文本,即$'
匹配到script
java
替換爲java-scripr
,因此結果爲java-scriptscript
$&-$\'
,若是用'
包裹結果,須要\
轉義,若是用"
包裹結果,則不須要轉義$$
javascript var a = 'javascript'; var b = a.replace(/a/gi, '$$'); console.log(b);//j$v$script
$$
表示對$
進行轉義輸出a
替換爲$
replace
```javascript
var a = 'this is a javascript text';
var b = a.replace(/\b(\w)(\w*)\b/g, fn);
console.log(b);//This Is A Javascript Textjavascript
function fn($1, $2, $3) {
return $2.toUpperCase() + $3;
}
``*
replace接受兩個參數,第一個爲正則表達式,第二個能夠爲文本,也能夠爲函數 *
\b表示單詞的分界線 *
\w表示字母、數字、下劃線或者漢字 *
fn中共接收了三個參數 *
$1表示整個正則表達式匹配到的文本,依次爲
this,
is,
a,
javascript,
text*
$2表示第一個子表達式
(\w)匹配到的文本,分別爲
t,
i,
a,
j,
t*
$3表示第二個子表達式
(\w*)匹配到的文本,分別爲
his,
s,
(空的內容),
avascript,
ext*
$2.toUpperCase()將
$2匹配到的文本轉換爲大寫 * 結果
This Is A Javascript Text`
java
replace
後fn
詳細內容javascript var a = 'this is a javascript text'; var b = a.replace(/\b(\w)(\w*)\b/g, fn); console.log(b); //this-t-his-0-this is a javascript text& is-i-s-5-this is a javascript text& a-a--8-this is a javascript text& javascript-j-avascript-10-this is a javascript text& text-t-ext-21-this is a javascript text& function fn($1, $2, $3, $4, $5) { return $1 + '-' + $2 + '-' + $3 + '-' + $4 + '-' + $5 + '&'; }
$1
, $2
, $3
,其實$2
至$3
能夠有多個,數量隨正則中的子表達式變化,由於/\b(\w)(\w*)\b/
中只有兩個子表達式,因此只有$2
和$3
fn
最後兩個參數(不必定是$4
和$5
),分別表示正則匹配到的文本($1
)開始位置(如匹配到javascript
,$4
就是javascript
在整段文本中的開始位置10)和整個要匹配的文本(this is a javascript text
)