JS正则表达式多次调用test方法匹配问题

发布于 2022-09-11 23:52:19 字数 777 浏览 31 评论 0

题目描述

本来要用正则匹配中文,但是在定义之后,调用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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文