这篇文章主要介绍了 JS 正则表达式获取分组内容的方法,有需要的朋友可以参考一下
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
支持多次匹配的方式:
- var testStr = "now test001 test002";
- var re = /test(\d+)/ig;
- var r = "";
- while(r = re.exec(testStr)) {
- alert(r[0] + " " + r[1]);
- }
此外也可以用 testStr.match(re),但是这样的话就不能有 g 的选项,而且只能得到第一个匹配。
另外备忘一下:
正则表达式对象的属性及方法:
预定义的正则表达式拥有有以下静态属性:input, multiline, lastMatch, lastParen, leftContext,
rightContext 和 $1 到 $9。其中 input 和 multiline 可以预设置。其他属性的值在执行过 exec 或 test 方法后被根据
不同条件赋以不同的值。许多属性同时拥有长和短 (perl 风格) 的两个名字,并且,这两个名字指向同一个值。(JavaScript 模拟 perl 的正则表达式)
正则表达式对象的属性:
属性 含义
$1...$9 如果它 (们) 存在,是匹配到的子串
$_ 参见 input
$* 参见 multiline
$& 参见 lastMatch
$+ 参见 lastParen
$` 参见 leftContext
$'' 参见 rightContext
constructor 创建一个对象的一个特殊的函数原型
global 是否在整个串中匹配 (bool 型)
ignoreCase 匹配时是否忽略大小写 (bool 型)
input 被匹配的串
lastIndex 最后一次匹配的索引
lastParen 最后一个括号括起来的子串
leftContext 最近一次匹配以左的子串
multiline 是否进行多行匹配 (bool 型)
prototype 允许附加属性给对象
rightContext 最近一次匹配以右的子串
source 正则表达式模式
lastIndex 最后一次匹配的索引
正则表达式对象的方法:
方法 含义
compile 这个应该是指重新定义正则表达式的内容
exec 执行查找,可以利用 while 的方式多次查找
test 进行匹配
toSource 返回特定对象的定义 (literal representing),其值可用来创建一个新的对象。重载 Object.toSource 方法得到的。
toString 返回特定对象的串。重载 Object.toString 方法得到的。
valueOf 返回特定对象的原始值。重载 Object.valueOf 方法得到
例子:
- <script language="JavaScript">
- var myReg = /(w+)s(w+)/;
- var str = "John Smith";
- var newstr = str.replace(myReg, "$2, $1");
- document.write(newstr);
- </script>
将输出 "Smith, John"
来源: