正則表達式的一些小例子,從簡單到複雜

下面是一些正則表達式的小例子,說明在註釋中

學習來源 http://manual.phpv.net/regular_expression.html

var str = "history";
console.log(/hi/.test(str)); // true
// \b是正則表達式規定的一個元字符
// 代表着單詞的開頭或結尾,也就是單詞的分界處
console.log(/\bhi\b/.test(str)); // false	\b精確查找hi這個詞

str = "hi lili and lucy";
console.log(/\bhi\b/.test(str)); // true

// .是另一個元字符,匹配除了換行符以外的任意字符。
// *同樣是元字符,不過它代表的不是字符,也不是位置,而是數量
// 它指定*前邊的內容可以連續重複出現任意次以使整個表達式得到匹配
// 因此,.*連在一起就意味着任意數量的不包含換行的字符。
console.log(/\bhi\b.*\blucy\b/.test(str)); // true

str = "010-12345678";
// 以0開頭,然後是兩個數字,然後是一個連字號"-",最後是8個數字
console.log(/0\d\d-\d\d\d\d\d\d\d\d/.test(str)); // true
// 爲了避免那麼多煩人的重複,我們也可以這樣寫這個表達式:0\d{2}-\d{8}
console.log(/0\d{2}-\d{8}/.test(str)); // true

// \ba\w*\b匹配以字母a開頭的單詞——先是某個單詞開始處(\b)
// 然後是字母a,然後是任意數量的字母或數字(\w*),最後是單詞結束處(\b)
console.log(/\ba\w*\b/.test("a234DS")); // true

// \d+匹配1個或更多連續的數字
// 這裏的+是和*類似的元字符
// 不同的是*匹配重複任意次(可能是0次),而+則匹配重複1次或更多次
console.log(/\d+/.test("abc")); // false
console.log(/\d*/.test("abc")); // true

// \b\w{6}\b 匹配剛好6個字母/數字的單詞
console.log(/\b\w{6}\b/.test("abc12")); // false
console.log(/\b\w{6}\b/.test("abc123")); // true

// 必須爲5位到12位數字
console.log(/^\d{5,12}$/.test("123456")); // true

表1.常用的元字符
代碼 說明
. 匹配除換行符以外的任意字符
\w 匹配字母或數字或下劃線或漢字
\s 匹配任意的空白符
\d 匹配數字
\b 匹配單詞的開始或結束
^ 匹配字符串的開始
$ 匹配字符串的結束

如果你想查找元字符本身的話,比如你查找.,或者*,就出現了問題:你沒辦法指定它們,因爲它們會被解釋成別的意思。這時你就得使用\來取消這些字符的特殊意義。因此,你應該使用\.和\*。當然,要查找\本身,你也得用\\.

例如:unibetter\.com匹配unibetter.com,C:\\Windows匹配C:\Windows。


表2.常用的限定符
代碼/語法 說明
* 重複零次或更多次
+ 重複一次或更多次
? 重複零次或一次
{n} 重複n次
{n,} 重複n次或更多次
{n,m} 重複n到m次

發佈了29 篇原創文章 · 獲贊 2 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章