Amazon Ads

2014年3月29日 星期六

【JS筆記】正規表示式(Regular Expression)中帶有中括號的比對模式

前面探討過一個簡單的正規表示式:
var pat = /abc/;
pat.test('abc is before def');  //true
pat.test('ab');    //false
以上列的模式/abc/來比對字串時,只有要比對的字串中,一定包含著「abc」這個字串,匹配才會成功,test()函式才會回傳true

再來看看,若上列的模式用一對中括號包起來呢?如下列模式:
var pat1 = /[abc]/;
pat1.test('ab'); //true
pat1.test('apple'); //true
pat1.test('big'); //true
pat1.test('dig'); //false
由上列的範例,好像只要比對的字串中,只要含有比對模式中一個字元,就能匹配成功?

是的,就是這樣沒錯。

當比對模式有用[]包起來時,只要比對的字串中,含有任何一個中括號內的字元,就能匹配成功。

另外,也可以使用來表示一個區間內的比對字元,如:
var pat2 = /[A-Z]/;  //比對的字串中,要含有任一個由A至Z的「大寫」字母
pat2.test('apple');  //false
pat2.test('Apple');  //true
var pat3 = /[1-9]/;  //比對的字串中,要含有任一個由1至9的數字
pat3.test('abc');  //false
pat3.test('1st');  //true
如果你想學好JavaScript,我推薦:

還有:


參考資料: