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

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

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

MMMHUHU 2019-03-20 18:48:59
reg = new RegExp("[\\u4E00-\\u9FFF]+", "g"); reg.test('中文') === true// truereg.test('中文') === false// truetypeof(reg.test('中文'))// "boolean"
查看完整描述

2 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

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

查看完整回答
反对 回复 2019-03-20
?
慕哥9229398

TA贡献1877条经验 获得超6个赞

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

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

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号