网络编程 
首页 > 网络编程 > 浏览文章

盘点javascript 正则表达式中 中括号的【坑】

(编辑:jimmy 日期: 2025/12/9 浏览:3 次 )

在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的字符串参数变成("...........")时,这串点出现了,所以呢,这个中括号里边点就只代表点,不代表别的,不是元字符除\n以外的单字符的意思了。于是网上搜了一下:

“很多元字符在字符组内都变成了普通字符”  对它变成了普通字符了,而不是元字符了,还有其他的像  "","+","*"这几个一旦放到中括号也变成了普通的字符了。

所以这个坑还是要当心啊。。。。

 

对了,任意字符可以用 [\s\S]代替。

以上这篇盘点javascript 正则表达式中 中括号的【坑】就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

上一篇:基于socket.io+express实现多房间聊天
下一篇:教你用javascript实现随机标签云效果_附代码
一句话新闻
一文看懂荣耀MagicBook Pro 16
荣耀猎人回归!七大亮点看懂不只是轻薄本,更是游戏本的MagicBook Pro 16.
人们对于笔记本电脑有一个固有印象:要么轻薄但性能一般,要么性能强劲但笨重臃肿。然而,今年荣耀新推出的MagicBook Pro 16刷新了人们的认知——发布会上,荣耀宣布猎人游戏本正式回归,称其继承了荣耀 HUNTER 基因,并自信地为其打出“轻薄本,更是游戏本”的口号。
众所周知,寻求轻薄本的用户普遍更看重便携性、外观造型、静谧性和打字办公等用机体验,而寻求游戏本的用户则普遍更看重硬件配置、性能释放等硬核指标。把两个看似难以相干的产品融合到一起,我们不禁对它产生了强烈的好奇:作为代表荣耀猎人游戏本的跨界新物种,它究竟做了哪些平衡以兼顾不同人群的各类需求呢?
友情链接:杰晶网络 DDR爱好者之家 南强小屋 黑松山资源网 白云城资源网 网站地图 SiteMap