为了账号安全,请及时绑定邮箱和手机立即绑定

【诡异的js】一个返回boolean类型的语句,即===true,又===false

【诡异的js】一个返回boolean类型的语句,即===true,又===false

慕斯709654 2019-03-20 15:58:12
reg = new RegExp("[\\u4E00-\\u9FFF]+", "g"); reg.test('中文') === true// truereg.test('中文') === false// truetypeof(reg.test('中文'))// "boolean"
查看完整描述

2 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

使用 'g' 标志后,正则会进行多次匹配。每次执行 reg.test,正则匹配的索引会发生变化。换句话说,执行 reg.test 后返回的结果是会发生变化的。第一次执行 reg.test,匹配成功,返回 true,索引走到字符串最后一位;再次执行 reg.test,索引 + 1,匹配失败,返回 false。

查看完整回答
反对 回复 2019-03-20
?
慕后森

TA贡献1802条经验 获得超5个赞

test() 会保存上次一匹配的索引位置,下次匹配从索引位置开始,匹配失败重置索引,所以第一次是true,第二次是false

查看完整回答
反对 回复 2019-03-20
  • 2 回答
  • 0 关注
  • 574 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信