盤點(diǎn)javascript 正則表達(dá)式中 中括號(hào)的【坑】
在javascript中使用正則時(shí)需要注意中括號(hào)里邊的一個(gè)坑,那就是中括號(hào)內(nèi)的元字符問(wèn)題。自己踩到坑了,網(wǎng)上搜了一下還有不少人踩了這個(gè)坑,所以大概說(shuō)一下。
中括號(hào)在正則中稱為字符組(Character class),有的書(shū)翻譯為字符類,還有的翻譯成字符集。我覺(jué)得字符組更好點(diǎn),畢竟class在計(jì)算機(jī)屬于中代表面向?qū)ο罄锏摹邦悺?。顧名思義,字符組為一組字符,它表示在一個(gè)位置里可能出現(xiàn)的多種字符。注意這里強(qiáng)調(diào)只匹配一個(gè)位置哦。(此段摘自-http://www.cnblogs.com/snandy/p/3662423.html)
用到一個(gè)取任意字符的地方,于是用了[.\n]* 結(jié)果 test一下 返回true,但是放到具體的環(huán)境當(dāng)中不對(duì)。。。。。。哎呀我去,不可以理解了。
果斷測(cè)試一下 var testp = /xx>[.\n]*/ testp.test("xx>asdfdfasd"); 果斷還是 true,把"xx>"放后面也是true,但是,兩邊都放上就是false。這是為什么呢??????
于是又重新 搞下var testp = /(xx>[.\n]*)/這個(gè),改一下加個(gè)括號(hào)就可以捕獲匹配的串串了。test完了,RegExp.$1一下特么發(fā)現(xiàn) 是空。。。。。是空。。。。為啥呢????
當(dāng)把test的字符串參數(shù)變成("...........")時(shí),這串點(diǎn)出現(xiàn)了,所以呢,這個(gè)中括號(hào)里邊點(diǎn)就只代表點(diǎn),不代表別的,不是元字符除\n以外的單字符的意思了。于是網(wǎng)上搜了一下:
“很多元字符在字符組內(nèi)都變成了普通字符” 對(duì)它變成了普通字符了,而不是元字符了,還有其他的像 "?","+","*"這幾個(gè)一旦放到中括號(hào)也變成了普通的字符了。
所以這個(gè)坑還是要當(dāng)心啊。。。。
對(duì)了,任意字符可以用 [\s\S]代替。
以上這篇盤點(diǎn)javascript 正則表達(dá)式中 中括號(hào)的【坑】就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- JS使用tofixed與round處理數(shù)據(jù)四舍五入的區(qū)別
- JS處理數(shù)據(jù)四舍五入(tofixed與round的區(qū)別詳解)
- javascript中toFixed()四舍五入使用方法詳解
- js正則表達(dá)式簡(jiǎn)單校驗(yàn)方法
- js用正則表達(dá)式篩選年月日的實(shí)例方法
- JS中toFixed()方法四舍五入的精度問(wèn)題詳解
- JavaScript 正則表達(dá)式詳解
- jmeter實(shí)現(xiàn)接口關(guān)聯(lián)的兩種方式(正則表達(dá)式提取器和json提取器)
- 在nest.js中通過(guò)正則表達(dá)式正確設(shè)置驗(yàn)證的方法
- jJavaScript中toFixed()和正則表達(dá)式的坑
相關(guān)文章
JavaScript實(shí)現(xiàn)網(wǎng)頁(yè)對(duì)象拖放功能的方法
這篇文章主要介紹了JavaScript實(shí)現(xiàn)網(wǎng)頁(yè)對(duì)象拖放功能的方法,涉及javascript針對(duì)瀏覽器的判斷、事件愛(ài)你的添加與移除等相關(guān)操作技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04
JS實(shí)現(xiàn)部分HTML固定頁(yè)面頂部隨屏滾動(dòng)效果
這篇文章主要介紹了JS實(shí)現(xiàn)部分HTML固定頁(yè)面頂部隨屏滾動(dòng)效果,涉及JavaScript響應(yīng)onscroll事件動(dòng)態(tài)操作頁(yè)面元素屬性的相關(guān)技巧,需要的朋友可以參考下2015-12-12
JavaScript實(shí)現(xiàn)音樂(lè)播放器
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)音樂(lè)播放器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08
js replace正則表達(dá)式應(yīng)用案例講解
js replace與正則表達(dá)式結(jié)合,可以有效發(fā)揮replace的功效,可以幫助用戶解決替換中的復(fù)制問(wèn)題,接下來(lái)詳細(xì)介紹使用方法,感興趣的朋友可以了解下2013-01-01
淺談Javascript如何實(shí)現(xiàn)勻速運(yùn)動(dòng)
這篇文章主要介紹了淺談Javascript如何實(shí)現(xiàn)勻速運(yùn)動(dòng)的方法及相關(guān)代碼,需要的朋友可以參考下2014-12-12
JS實(shí)現(xiàn)touch 點(diǎn)擊滑動(dòng)輪播實(shí)例代碼
這篇文章主要介紹了JS實(shí)現(xiàn)touch 點(diǎn)擊滑動(dòng)輪播實(shí)例代碼,需要的朋友可以參考下2017-01-01
使用JavaScript獲取Django模板指定鍵值數(shù)據(jù)
這篇文章主要介紹了使用JavaScript獲取Django模板指定鍵值數(shù)據(jù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05
基于JavaScript實(shí)現(xiàn)文字超出部分隱藏
這篇文章主要介紹了基于JavaScript實(shí)現(xiàn)文字超出部分隱藏 的相關(guān)資料,需要的朋友可以參考下2016-02-02

