正则表达式的lastIndex属性】的更多相关文章

js中正则表达式的使用方式有两种,一种是正则表达式对象的方法,一种是字符串对象的方法,前者有exec(str).test(str)两个方法,后者有match(regexp).replace(regexp).search(regexp).split(search)四个方法.当作为正则表达式对象的方法使用时,要特别注意它的lastIndex属性. var regexp = /abcd/g; var str = 'abcdefg'; alert(regexp.test(str)); //true al…
在JavaScript中使用正则表达式时,遇到一个坑:第一次匹配是true,第二次匹配是false. 因为在带全局标识"g"的正则表达式对象中,才有“lastIndex” 属性,该属性用于指定下次匹配的起始位置. 例如: var pattern1 = new RegExp("1[0-9]{10}", "g"); // 带全局标识 var pattern2 = new RegExp("^1[0-9]{10}$"); // 不带全…
有这样一段代码: var newDateStr = " 11 13:48:18"; var reg = new RegExp("[0-9]+","g"); var ar = reg.exec(newDateStr); reg.lastIndex; ar.lastIndex; 假如你知道lastIndex是下一个匹配开始的索引,并且g是进行全局的匹配(否则只会匹配第一个符合正则规则的子串). 那么问题就来了,在IE5.0下面,ar.lastInde…
今天在做正则循环匹配,碰到一个怪问题,第一次可以匹配上,但循环第一次之后,就无法匹配上了.猛然想起,RegExp中lastIndex属性,于是上网搜索了一下,将一些资料整理归纳,以备今后自己查阅(记性不好) 借鉴网上一个例子:http://www.dewen.org/q/468 <script type='text/javascript'> var reTest = /^aid=(.*)/ig; var aData = [ 'aid=^$', 'aid=^$', 'aid=^$', 'aid=…
js进阶正则表达式11RegExp的属性和方法(RegExp的属性和方法,就是RegExp对象.(点)什么的形式)(正则表达式执行之前会被编译) 一.总结 1. RegExp的属性和方法,就是RegExp对象.(点)什么的形式 2.正则表达式执行之前会被编译 二.js进阶正则表达式11RegExp的属性和方法 RegExp 对象属性 global RegExp 对象是否具有标志 g. 语法:RegExpObject.global 如果 g 标志被设置,则该属性为 true,否则为 false.…
首先大家看下下面的代码 var reg = /\d/; console.log( reg.test("1") ); console.log( reg.test("1") ); 输出都是true. 好的,接下来我们看这段代码 var reg = /\d/g; console.log( reg.test("1") ); console.log( reg.test("1") ); 一个true,一个false,这是什么情况? 正则对…
简介:正则的lastIndex 属性用于规定下次匹配的起始位置. 注意: 该属性只有设置标志 g 才能使用. 上次匹配的结果是由方法 RegExp.exec() 和 RegExp.test() 找到的,它们都以 lastIndex 属性所指的位置作为下次检索的起始点.这样,就可以通过反复调用这两个方法来遍历一个字符串中的所有匹配文本. 注意:该属性是可读可写的.只要目标字符串的下一次搜索开始,就可以对它进行设置.当方法 exec() 或 test() 再也找不到可以匹配的文本时,它们会自动把 l…
原文链接:http://zochen.iteye.com/blog/690716 Unicode 编码并不只是为某个字符简单定义了一个编码,而且还将其进行了归类. \pP 其中的小写 p 是 property 的意思,表示 Unicode 属性,用于 Unicode 正表达式的前缀. 大写 P 表示 Unicode 字符集七个字符属性之一:标点字符. 其他六个是 L:字母: M:标记符号(一般不会单独出现): Z:分隔符(比如空格.换行等): S:符号(比如数学符号.货币符号等): N:数字(比…
需求 需要获取json的字符串参数中的某个属性的值,只用json转对象后再获取层级比较多,所以使用简单的正则表达式进行获取 具体实现 public static void main(String[] args) { String data = "{\"code\":1,\"msg\":\"操作成功!\",\"success\":true,\"data\":{\"code\":\…
一.前言 粗浅的编写正则表达式,是造成性能瓶颈的主要原因.如下: var reg1 = /(A+A+)+B/; var reg2 = /AA+B/; 上述两个正则表达式,匹配效果是一样的,但是,效率就相差太远了,甚至在与少量字符串匹配时,reg1就会造成你浏览器卡死. 不信?我们可以测试下. 首先,我们声明一个字符串变量str,同时赋予一个包含20个A的字符串给str,采用match方法与上述reg1.reg2进行匹配测试,如下: var str = 'AAAAAAAAAAAAAAAAAAAA'…