首页 > 其他 > 详细

正则表达式中,转义字符、元字符在 [] 中的含义

时间:2015-08-11 17:57:40      阅读:245      评论:0      收藏:0      [点我收藏+]

今天遇到一个问题

‘5.4.0a‘.match(/[\d.]+/)

按照我之前的理解,[]表示里面的任意一个字符的意思,\d表示数字,.表示任意单个字符,这样的话,匹配结果应该是‘5.4.0a‘

but,实践结果是 ‘5.4.0‘

显然这里的.表示的只是. 并没有别的意思,‘5.4.0a‘.match(/[\d\.]+/) 测试这句结果也是一样的。

这么看,问题的关键应该是[],

先去看看mdn的解释:
技术分享

这说明,并不能看出什么特别的含义,于是只好自己多测试了一些demo,and和其他前端小伙伴交流了一下:

‘5*4*0a‘.match(/[\d*]+/)  //‘5*4*0‘
‘5^4^0a‘.match(/[\d^]+/) //‘5^4^0‘
"\n"=="n"  //false
"\a"==="a" //true

可以总结一下了:

1.对于没有转义含义的字符,\x===x
2.对于正则[]中的字符,

正则表达式中,转义字符、元字符在 [] 中的含义

原文:http://www.cnblogs.com/youryida/p/4721511.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!