标签:
今天遇到一个问题
‘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