javascript的正则表达式的问题

查看:98
本文介绍了javascript的正则表达式的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

var msg=/[a-z]+/g
undefined
msg.test('dfdfdf')
true
msg.test('dfdfdf')
false
msg.test('dfdfdf')
true

问什么一时返回真一时返回假呢

解决方案

因为题主多次测试都是使用同一个字符串字面量'dfdfdf',
而在JavaScript中, 正则表达式的g标志有记录lastIndex的功能1,
所以第一次test记录了lastIndex'dfdfdf'字符串的末尾, 导致第二次test的结果为false,
并且第二次test由于遍历了'dfdfdf'字符串的末尾(也就是完整地遍历了整个字符串对象里面的内容),
所以lastIndex指针又重新指向了字符串开头, 然后重新循环.

所以问题中的测试会是以true, false, true, false的结果交替出现, 如下所示:


  1. MDN-JavaScript 正则表达式

这篇关于javascript的正则表达式的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆