首頁 > web前端 > js教程 > 主體

盤點javascript 正規表示式中 中括號的【坑】_javascript技巧

WBOY
發布: 2016-05-16 15:10:29
原創
1152 人瀏覽過

在javascript中使用正規時需要注意中括號裡邊的一個坑,那就是中括號內的元字元問題。自己踩到坑了,網路搜了一下還有不少人踩了這個坑,所以大概說一下。

中括號在正規稱為字符組(Character class),有的書翻譯為字符類,還有的翻譯成字符集 。我覺得字元組比較好點,畢竟class在電腦屬於中代表物件導向裡的「類別」。顧名思義,字符組為一組字符,它表示在一個位置可能出現的多種字符。注意這裡強調只匹配一個位置哦。 (此段摘自-http://www.cnblogs.com/snandy/p/3662423.html)

 

用到一個取任意字元的地方,於是用了[.n]*   結果  test一下 回傳true,但是放到具體的環境當中不對。 。 。 。 。 。哎呀我去,不可以理解了。

果斷測試一下  var testp = /xx>[.n]*/    testp.test("xx>asdfdfasd");  果斷還是true,把"xx>"放後面也是true,但是,兩邊都放上就是false。這是為什麼呢? ? ? ? ? ?

 

於是又重新搞下var testp = /(xx>[.n]*)/這個,改一下加個括號就可以捕獲匹配的串串了。 test完了,RegExp.$1一下特麼發現 是空。 。 。 。 。是空。 。 。 。 為啥呢? ? ? ?

當把test的字串參數變成("...........")時,這串點出現了,所以呢,這個中括號裡邊點就只代表點,不代表別的,不是元字符除 以外的單字元的意思了。於是網路搜了一下:

「很多元字元在字元組內都變成了普通字元」  對它變成了普通字元了,而不是元字元了,還有其他的像"?","+","*"這幾個一旦放到中括號也變成了普通的字元了。

所以這個坑還是要當心啊。 。 。 。

 

對了,任意字元可以用 [sS]代替。

以上這篇盤點javascript 正規表示式中 中括號的【坑】就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板