JS正则表达式多次调用test方法匹配问题
题目描述
本来要用正则匹配中文,但是在定义之后,调用test方法进行判断时,会出现意料之外的结果。
比如我这样const Hanzi = /^[\u2E80-\u9FFF]+$/
定义好Hanzi,然后多次调用,如Hanzi.test('汉字')
、Hanzi.test('我是汉字')
,就会出现返回false的情况。
后面试了试其它的,发现也有这种问题。
相关代码
const reg = /[a-z]/g
reg.test(123) // false
reg.test('123') // false
reg.test('aaa') // true
reg.test('bbb') // true
reg.test('cc') // false
reg.test('dd') // true
reg.test('ee') // true
reg.test('ff') // false
但是使用新的表达式调用,就没有问题。/[a-z]/g.test('aaa')
/[a-z]/g.test('aaa')
/[a-z]/g.test('aaa')
/[a-z]/g.test('aaa')
/[a-z]/g.test('aaa')
请问有没有人可以解惑一下,什么原因出现这种情况。。
ps: 在chrome浏览器和nodejs环境下测试过
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
MDN链接