时间:2021-05-18
在javascript中使用正则时需要注意中括号里边的一个坑,那就是中括号内的元字符问题。自己踩到坑了,网上搜了一下还有不少人踩了这个坑,所以大概说一下。
中括号在正则中称为字符组(Character class),有的书翻译为字符类,还有的翻译成字符集。我觉得字符组更好点,毕竟class在计算机属于中代表面向对象里的“类”。顾名思义,字符组为一组字符,它表示在一个位置里可能出现的多种字符。注意这里强调只匹配一个位置哦。(此段摘自-http:///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 正则表达式中 中括号的【坑】就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
JavaScript中的正则表达式解析正则表达式(regularexpression)对象包含一个正则表达式模式(pattern)。它具有用正则表达式模式去匹配
相关阅读:EditPlus中的正则表达式实战(1)EditPlus中的正则表达式实战(2)EditPlus正则表达式实战(3)EditPlus中的正则表达式实战
一、正则表达式的特殊字符介绍正则表达式^匹配行首$匹配行尾.任意单个字符[]匹配包含在中括号中的任意字符[^]匹配包含在中括号中的字符之外的字符[-]匹配指定范
感谢AKA及作者。Perl中的正则表达式正则表达式的三种形式正则表达式中的常用模式正则表达式的8大原则 正则表达式是Perl语言的一大特色,也是Perl程序中
js中的正则表达式比起C#中的正则表达式要弱很多,但基本够用了1定义正则表达式2关于验证的三个这则表达式方法3正则表达式式的转义字符1定义正则表达式在js中定义