JavaScript正则表达式19例(12)

简介:

 (……续例11)

例12:全局RegExp属性

 
 
  1. void function reg_12()  
  2. {  
  3.     var ver = Number(ScriptEngineMajorVersion() + "." + ScriptEngineMinorVersion())  
  4.     if (ver >= 5.5)  
  5.     {  
  6.         var s = "Live for nothing,die for something";  
  7.         var r = /\w+/g;  
  8.         while ((r.exec(s)) != null)  
  9.             alert(RegExp.index + "-" + RegExp.lastIndex + ": " + RegExp.lastMatch);  
  10.     }  
  11.     else 
  12.     {  
  13.         alert("只有JScript 5.5及以上版本支持该功能。");  
  14.     }  

行3:检测浏览器的JavaScript脚本引擎,分别获取主版本号和副版本号,然后用.字符连接起来并通过Number()方法转换为数字,从而判断其是否为5.5及以上的版本(低于5.5的版本不支持全局RegExp对象)。
行7:\w符号匹配包括下划线的任何单词字符,等价于'[A-Za-z0-9_]'。由于使用了开关g,因此将匹配每一个,注意,这里并没有使用^符号要求从字符串开始进行匹配。
行8:该循环只要正则表达式匹配到内容就循环,因为有开关g,所以每次都会向后移动一个单词。
行9:通过访问全局对象RegExp的三个属性,显示各个单词的位置及内容。
其中,index属性返回字符位置,它是查找字符串中第一个成功匹配的开始位置;lastIndex属性返回字符位置,它是被查找字符串中下一次成功匹配的开始位置。这两个属性都是基于下标0开始的;显然lastIndex属性会比单词的结束字符所在索引大1。lastMatch属性返回正则表达式搜索过程中的最后匹配的内容。
运行结果:while循环会执行6次,例如第1次显示0-4:Live

(未完待续……)










本文转自 BlackAlpha 51CTO博客,原文链接:http://blog.51cto.com/mengliao/468186,如需转载请自行联系原作者
目录
相关文章
|
12月前
|
JavaScript 前端开发
70.【JavaScript 6.0】(八)
70.【JavaScript 6.0】
44 1
|
11天前
|
JavaScript 前端开发 测试技术
什么是JavaScript
【8月更文挑战第20天】
9 0
|
4月前
|
JavaScript 前端开发
JavaScript:处理this
JavaScript:处理this
46 1
|
4月前
|
JavaScript 前端开发
JavaScript是什么,其特点又是什么?
JavaScript是什么,其特点又是什么?
32 0
|
存储 缓存 JavaScript
非常实用的JavaScript技巧
非常实用的JavaScript技巧
49 0
|
JavaScript 前端开发 Java
JavaScript的特点
JavaScript的特点
84 0
|
JavaScript 前端开发
Day10 JavaScript
JavaScript
151 0
|
JavaScript 前端开发 Java
JavaScript的知识总结(5)
JavaScript的知识总结(4)
|
JavaScript 前端开发
【译】9个强大的JavaScript技巧
我喜欢优化!但是,如果站点无法在用户的Internet Explorer 11浏览器中运行,他们不会在乎我的优化代码。我使用Endtest来创建自动测试,并在跨浏览器的云上执行它们。
【译】9个强大的JavaScript技巧