源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2022-09-08 22:40 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:盘点javascript 正则表达式中 中括号的【坑】
在javascript中使用正则时需要注意中括号里边的一个坑,那就是中括号内的元字符问题。自己踩到坑了,网上搜了一下还有不少人踩了这个坑,所以大概说一下。 中括号在正则中称为[b]字符组[/b](Character class),有的书翻译为[b]字符类[/b],还有的翻译成[b]字符集[/b]。我觉得字符组更好点,毕竟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 = /[b](xx>[.\n]*)[/b]/这个,改一下[b]加个括号[/b]就可以[b]捕获匹配的串串了[/b]。test完了,[b]RegExp.$1一下特么发现 是空。。。。。是空。。。。[/b]为啥呢???? 当把test的字符串参数变成("...........")时,这串点出现了,所以呢,这个中括号里边点就只代表点,不代表别的,不是元字符除\n以外的单字符的意思了。于是网上搜了一下: [b]“很多元字符在字符组内都变成了普通字符”  [/b]对它变成了普通字符了,而不是元字符了,还有其他的像  "?","+","*"这几个一旦放到中括号也变成了普通的字符了。 所以这个坑还是要当心啊。。。。   对了,[b]任意字符可以用 [\s\S]代替。[/b] 以上这篇盘点javascript 正则表达式中 中括号的【坑】就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程素材网。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部