在正規表示法中,插入符號 ^
和美元符號 $
字元具有特殊意義。它們稱為「錨點」。
插入符號 ^
符合文字開頭,而美元符號 $
則符合文字結尾。
例如,我們來測試文字是否以 Mary
開頭
let str1 = "Mary had a little lamb";
alert( /^Mary/.test(str1) ); // true
模式 ^Mary
表示:「字串開頭,然後是 Mary」。
類似地,我們可以使用 snow$
來測試字串是否以 snow
結尾
let str1 = "its fleece was white as snow";
alert( /snow$/.test(str1) ); // true
在這些特定情況下,我們可以使用字串方法 startsWith/endsWith
來代替。正規表示式應使用於更複雜的測試。
測試完全符合
兩個錨點一起 ^...$
通常用於測試字串是否完全符合模式。例如,檢查使用者輸入是否為正確格式。
讓我們檢查字串是否為 12:34
格式的時間。也就是:兩個數字,然後是一個冒號,然後是另外兩個數字。
在正規表示式語言中,這是 \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
的符合必須從文字開頭 ^
之後立即開始,而結尾 $
必須立即跟隨。
整個字串必須完全符合此格式。如果有任何偏差或額外字元,結果為 false
。
如果存在旗標 m
,錨點的行為會有所不同。我們將在下一篇文章中看到。
錨點具有「零寬度」
錨點 ^
和 $
是測試。它們具有零寬度。
換句話說,它們不符合字元,而是強制 regexp 引擎檢查條件(文字開頭/結尾)。
留言
<code>
標籤;若要插入多行程式碼,請將其包覆在<pre>
標籤中;若要插入超過 10 行的程式碼,請使用沙盒 (plnkr、jsbin、codepen…)