有一个正则的问题很神奇

To_knowMore 2017-08-07 09:32:33
var bookArr = ["呼啸山庄.txt", "飘.txt", "母猪的产后护理.txt", "HarryPotter.txt", "Tom&Jerry.txt", "Time.txt"];
var reg = /[\u4E00-\u9FA5]\.txt/g;
for (var i = 0; i < bookArr.length; i++) {
if (reg.test(bookArr[i])) {
console.log(bookArr[i]);
}
}
如果,我把reg后面的g去掉,打印出所有的中文书名,加上g就会少打一个,这是为什么?
...全文
224 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
75闪光雷 2017-08-08
  • 打赏
  • 举报
回复
肖施主 2017-08-08
  • 打赏
  • 举报
回复
有问题就问楼上的大神,很厉害的,帮我解决过很多问题
文盲老顾 2017-08-08
  • 打赏
  • 举报
回复
var bookArr = ["呼啸山庄.txt", "飘.txt", "母猪的产后护理.txt", "HarryPotter.txt", "Tom&Jerry.txt", "Time.txt"];
var reg = /[\u4E00-\u9FA5]\.txt/g;
for (var i = 0; i < bookArr.length; i++) {
if (reg.test(bookArr[i])) {
console.log(bookArr[i]);console.log(reg.lastIndex);reg.lastIndex=0;
}
}
http://bbs.csdn.net/topics/120009926 很久以前我也有这个疑问
天际的海浪 2017-08-07
  • 打赏
  • 举报
回复
加了g的正则表达式在调用test()方法之后会更新正则对象的lastIndex属性(字符串匹配的结束位置)。 在对同一个正则对象第二次调用test()时会从正则对象的lastIndex的位置开始查找、而不是从头开始查找。 不加g的正则对象不会自动更新的lastIndex属性。lastIndex属性始终是0

87,994

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧