4.7 正規表達式(Regular Expression)
在 javascript/practice
資料夾下,建立 regular_expression.html
檔案,以便練習。
使用方式
驗證
定義一個字串的規則格式:寫法為
/正規表示式/
。再使用
.test()
方法,來驗證給定的字串是否符合規則,是的話回傳true
,反之回傳false
。
例:
延續上例,若希望不區分大小寫,就將:
改成:
取代
有分大小寫:
希望不分大小寫(但只會取代找到的第一個):
全部搜尋取代,且不分大小寫:
特殊字元列表
字元
比對規則
範例
^
字串起始
/^This/ 與 "This is" 比對結果:true。
$
字串結尾
/end$/ 與 "the end" 比對結果:true。
*
出現零次或多次
/se*/ 與 "seeee"、"se" 比對結果:true。
?
出現零次或 1 次
/ap?/ 與 "apple"、"and" 比對結果:true。
+
出現 1 次以上
/ap+/ 與 "apple" 比對結果:true。與 "and" 比對結果:false。
{n}
剛好出現 n 次
/ap{2}/ 與 "apple" 比對結果:true。與 "and" 比對結果:false。
{n,}
至少出現 n 次
/ap{2,}/ 與 "apple"、"appple" 比對結果:true。與 "aple" 比對結果:false。
{n,m}
最少出現 n 次,最多出現 m 次
/ap{2,4}/ 與 "apple" 比對結果:true。與 "aple" 比對結果:false。
.
任意字元(換行字元除外:\r(enter)、\n(換行)、\r\n(換行))。\t 為 tab
/a.e/ 與 "ape"、"axe"、"a\te" 比對結果:true。與 "a\ne" 比對結果:false。
[...]
中括號裡的任意字元
/a[px]e/ 與 "ape"、"axe" 比對結果為 true。與 "apxe" 比對結果:false。
[^...]
除了中括號裡的任意字元
/a[^px]/ 與 "ale" 比對結果:true。
\d
數字 0 ~ 9
/\d{3}/ 與 "abc 123" 比對結果:true。
\D
任何非數字字元
/\D{2,4}/ 與 "abc 123" 比對結果:true。
\w
字母、數字、底線符號
/\w/ 與 "javascript" 比對結果:true。與 "%" 比對結果:false。
\W
非「字母、數字、底線符號」的其它字元
/\W/ 與 "100%" 比對結果:true。
\n
換行字元
\s
一個空白字元
\S
一個非空白字元
\t
一個 tab 字元
練習
修改以下原始碼,試著比對行動電話號碼:09 開頭,且總共一定要 10 個位數:
參考作法:
Last updated