這篇文章主要介紹了關於深入理解JS正規表示式之預定義類別與邊界的解析,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
正規表示式提供預先定義類別來符合常見的字元類別
#字元 | 等價類別 | 意義 |
---|---|---|
. | [^\r\n] | 除了回車符號和換行符號以外的所有字元 |
\d | [0-9] | #數字字元 |
[^0-9] | 非數字字元 | |
[\t\n\x0B\f\r] | 空白符 | |
[^\t\n\x0B\f\r] | 非空白符 | |
[a-zA-Z_0-9] | 單字字元(字母、數字、底線) | |
[^a-zA-Z_0-9] | #非單字字元 |
/ab\d/邊界正規表示式也提供了幾個常用的邊界匹配字元
##意思 | |
---|---|
以xxx開始 | |
#以xxx結束 | |
單字邊界 | |
非單字邊界 |
單字邊界與非單字邊界
let text = 'This is a boy' let reg1 = /is/g let reg2 = /\bis\b/g text.replace(reg1, 'IS') // 没有使用单词边界\b区分,结果为:ThIS IS a boy text.replace(reg2, 'IS') // 使用了单词边界进行区分,结果为:This IS a boy
而當我只想匹配作為單字結尾的is時,該怎麼辦?此時可以機智的混用單字邊界與非單字邊界:
let text = 'This is a boy' let reg3 = /\Bis\b/g text.replace(reg3, 'IS') // ThIS is a boy
^ 和$ —— 開始與結尾
和$
可以完美的解決這個問題:<pre class="brush:js;toolbar:false;">let text = &#39;@123@abc@&#39;
let reg1 = /@/g
text2.replace(reg1, &#39;Q&#39;) // 没有使用^和$,匹配了所有的@,结果为:Q123QabcQ
let reg2 = /^@/g
text.replace(reg2, &#39;Q&#39;) // 使用^匹配开头的@,结果为:Q123@abc@
let reg3 = /@$/g
text.replace(reg3, &#39;Q&#39;) // 使用$匹配结尾的@,结果为:@123@abcQ</pre>
tips:實際使用中
需要寫在匹配項的前方,而$
需要卸載符合項目的後方在多行的情況下使用^和$
進入多行模式才能匹配到每行的開頭和結尾匹配字符:<pre class="brush:js;toolbar:false;">let text = &#39;@123\n@456\n@789&#39;
let reg1 = /^@\d/g
text.replace(reg1, &#39;Q&#39;)
/*
由于换行实际上只是一个换行符字符,在正常模式下,依然看做一段字符
结果为:
Q23
@456
@789
*/
let reg2 = /^@\d/gm
text.replace(reg2, &#39;Q&#39;)
/*
添加了m进入多行模式:
结果为:
Q23
Q56
Q89
*/</pre>
以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!
相關推薦:
深入理解JS正規表示式範圍類別的解析深入理解JS正規表示式之元字元和字元類別的解析以上是深入理解JS正規表示式之預定義類別與邊界的解析的詳細內容。更多資訊請關注PHP中文網其他相關文章!