一、中括號[]裡面的特殊字符是不用轉義的,例如[/]、[.]、[*]、[?]、[+]都是可以直接匹配對應的字符 . *?+。下面是測試結果:
所以,/[d.]/這個正則表達式實際上是匹配數字字符或者字符".",作用等同於/[d.]/
二、match()和exec()的區別
二者的區別主要在於正則表達式在設置了全局標識符g的情況。
如果沒有設置全局標識符g,那麼調用string.match(regexp)的結果和調用regexp.exec(string)的結果是相同的,
但在設置了全局標識符g時,string.match(regexp)會把所有的匹配都放入結果數組中,regexp.exec(string)的結果則只給出第一個成功的匹配。
而用regexp.lastIndex屬性來記錄下一次匹配開始的位置。測試如下:
PS:另外要注意的是lastIndex只對exec()和test()方法起作用,string.match(regexp)是不會影響regexp這個正則的lastIndex屬性的。