W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
插入符號 ?^
? 和美元符號 ?$
? 在正則表達(dá)式中具有特殊的含義。它們被稱為“錨點(diǎn)”。
插入符號 ^
匹配文本開頭,而美元符號 $
則匹配文本末尾。
舉個例子,讓我們測試一下文本是否以 Mary
開頭:
let str1 = "Mary had a little lamb";
alert( /^Mary/.test(str1) ); // true
該模式 ^Mary
表示:字符串開始,緊接著就是 “Mary”。
與此類似,我們可以用 snow$
來測試文本是否以 snow
結(jié)尾:
let str1 = "it's fleece was white as snow";
alert( /snow$/.test(str1) ); // true
在以上這些特殊的例子中我們實際上可以用 startsWith/endsWith
來代替。正則表達(dá)式應(yīng)該被用于更加復(fù)雜的測試。
這兩個錨點(diǎn) ^...$
放在一起通常被用于測試一個字符串是否完全匹配一個模式。例如,檢查用戶輸入的格式是否正確。
讓我們測試一個字符串是否是 12:34
格式的時間。即,兩位數(shù),然后是一個冒號,接著是另一個兩位數(shù)。
用正則表達(dá)式來表示就是 \d\d:\d\d
:
let goodInput = "12:34";
let badInput = "12:345";
let regexp = /^\d\d:\d\d$/;
alert( regexp.test(goodInput) ); // true
alert( regexp.test(badInput) ); // false
在這個例子中 \d\d:\d\d
所對應(yīng)的匹配項必須正好在文本 ^
的開頭之后開始,并且結(jié)尾 $
必須緊跟其后。
整個字符串必須完全符合這個格式。如果其中有任何偏差或額外的字符,結(jié)果將為 false
。
如果有修飾符 m
,那么錨點(diǎn)的行為將會不同。我們將在下一篇文章中學(xué)習(xí)這一點(diǎn)。
錨點(diǎn)“寬度”為零
錨點(diǎn)
^
和$
屬于測試。它們的寬度為零。
換句話說,它們并不匹配一個具體的字符,而是讓正則引擎測試所表示的條件(文本開頭/文本末尾)。
什么字符串可以匹配模式 ^$
?
空字符串是唯一的匹配項:它開始并立即結(jié)束。
這個題目再次證明了錨點(diǎn)不是字符串,而是測試。
對于空字符串 ""
,正則表達(dá)式引擎將會首先匹配 ^
(輸入開始),匹配成功,然后立即匹配結(jié)束 $
,也匹配成功。所空字符串是匹配項。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: