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,我推薦:
參考資料: