Simple Regular Expression
var pattern;
普通字元
特殊字元顯示, 例如^, $, (, ), {, }, +, *, ., ?, |, [, ], 這些字元沒辦法直接使用, 因為這些字元是有意義的. 如果要把他轉成普通字元必須加上拖曳字元符號 \.
pattern=/\\/;
pattern=/\^/;
pattern=/\$/;
pattern=/\+/;
pattern=/\\\\/;
//etc, ......
特殊字元
有些無法打入的特殊字元表示, 例如搭配拖曳字元加上英文字原來表示, 這些特殊字元例如: Enter分行符號, 定位字元等等....
pattern=/\t/; //定位字元
pattern=/\n\; //換行
pattern=/\r/; //Enter
pattern=/\f/; //換頁
pattern=/\a/; //alert字元
pattern=/\e/; //escape字元
pattern=/\v/; //垂直定位字元
pattern=/\0/; //空字
pattern=/\x65/; //xN|N is hex format. N=65=>A; N=97=>a
字元類別
簡單類, 反向類, 範圍類, 組合類和預定義類.
>簡單類:
使用 [] 符號可以表達 或/OR 的關係.
pattern=/[123]/; //表示匹配的字元有三種, 1, 2或著3.
>反向類:
表示簡單類的 NOT 關係.
pattern=/[^abcdef]/; //表示匹配a, b, c, d, e和f以外的字元.
>範圍類:
允許匹配的字元在某個範圍(Range)內.
pattern=/[a-z]/; //表示匹配a到z內的字元.
pattern=/[A-Z]/; //表示匹配A到Z內的字元.
pattern=/[0-9]/; //表示匹配0到9內的字元.
pattern=/[a-zA-Z0-9]/; //表示可以匹配a-z, A-Z或著0-9這三類內的字元.
pattern=/[^0-9]/; //反向關係, 匹配0到9以外的字元.
pattern=/[^a-z0-9]/; //表示匹配a到z和0到9以外的字元.
>組合類:
簡單類, 反向類和範圍類的組合型.
pattern=/[A-Z0-9\.]/; //表示匹配A到Z, 0到9和.字元.
>預定義類:
對於某種組合類表示, 預定義類予以用拖曳字元搭配英文字來對應.
pattern=/./; //[^\n\r]
pattern=/\d/; //[0-9]
pattern=/\D/; //[^0-9]
pattern=/\s/; //[ \t\n\x0B\f\r]
pattern=/\S/; //[^ \t\n\x0B\f\r]
pattern=/\w/; //[a-zA-Z_0-9]
pattern=/\W/; //[^a-zA-Z_0-9]
量詞
用來限制某些匹配字元的個數, 稱為限定詞. 限定詞: *, +, ?, {n}, {n,}, {n,m}.
pattern=/a*b/; // * 的限定詞表示允許匹配出現0次或著多次的前字元. a*b表示允許出現b, ab, aab, aaab, ....
pattern=/a+b/; // + 的限定詞表示允許匹配出現至少一次的前字元. a+b表示允許出現ab, aab, aaab, ....
pattern=/a[cd]?/; // ? 的限定詞表示允許匹配出現0次或著1次的前字元. a[cd]?表示允許出現a, ac, ad.
pattern=/\d{2}/; // {n}|n is number and n>=0的關係是表示允許匹配出現n次的前字元. \d{2}表示允許出現\d\d.
pattern=/\w\d{2,}/; //{n,}的關係表示必須匹配出現>=n次的前字元. \w\d{2,}表示允許出現a12, b456,...
pattern=/ba{1,3}/; //{n,m}的關係表示必須匹配出現最少n次,最多m次的前字元. ba{1,3}表示允許出現ba, baa, baaa.
Examples:
pattern=/\$\d+\.?\d*/; \\價格檢查, \$顯示$, \d+出現至少一次, \.出現0或1次, \d*出現0或多次. 合法: $910, $13.5, $12.58
pattern=/\d{3}-\d{7-8}/; \\數字組合區段檢查, \d{3}必須出現三次, \d{7-8}必須出現最少7次, 最多8次.
Greedy Qualifier
使匹配字串和運算式盡可能多次匹配. Regular Expression預設是Greedy.
pattern=/a\d+/; \\允許a1, a12, a974, a6521, a75392, a852433281
pattern=/fo{2,}/; \\允許foo, fooo,foooo, foooooooo
Lazy Qualifier
為Greedy Qualifier的相反意義. 盡可能少量匹配. 這代表著最多允許出現次數為0或1次的最少次數. 搭配 ? 限定詞組合.
pattern=/a\d?/; //允許a1, a2, a3, ..., a9的最少匹配.
pattern=/pk\d{3,4}?/; //\d{3,4}允許最少匹配3次的\d. 設\d{3,4}=t, t?允許t允許最少匹配1次.
pattern=/a\d+?/; \\在a15422222的情況下, /d+的最少匹配為1.
pattern=/fo{2,}?/; \\使得o{2,}最少匹配為oo.