JS正则表达式获取分组内容的方法详解


Posted in Javascript onNovember 15, 2013

支持多次匹配的方式:

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"
Javascript 相关文章推荐
JS 打印功能代码可实现打印预览、打印设置等
Oct 31 Javascript
JavaScript获取指定元素位置的方法
Apr 08 Javascript
在JavaScript中使用开平方根的sqrt()方法
Jun 15 Javascript
jQuery动态添加及删除表单上传元素的方法(附demo源码下载)
Jan 15 Javascript
基于js里调用函数时,函数名带括号和不带括号的区别
Jul 28 Javascript
jquery组件WebUploader文件上传用法详解
Oct 23 Javascript
jquery实现下拉框多选方法介绍
Jan 03 Javascript
jQuery+CSS3实现点赞功能
Mar 13 Javascript
微信小程序新增的拖动组件movable-view使用教程
May 20 Javascript
node.js中axios使用心得总结
Nov 29 Javascript
JavaScript基于数组实现的栈与队列操作示例
Dec 22 Javascript
vue中$refs, $emit, $on, $once, $off的使用详解
May 26 Javascript
javascript中动态加载js文件多种解决办法总结
Nov 15 #Javascript
jQuery Form 页面表单提交的小例子
Nov 15 #Javascript
js简单实现用户注册信息的校验代码
Nov 15 #Javascript
jquery slibings选取同级其他元素的实现代码
Nov 15 #Javascript
jquery实现手风琴效果实例代码
Nov 15 #Javascript
jquery中插件实现自动添加用户的具体代码
Nov 15 #Javascript
用jquery中插件dialog实现弹框效果实例代码
Nov 15 #Javascript
You might like
使用PHPMYADMIN操作mysql数据库添加新用户和数据库的方法
2010/04/02 PHP
PHP处理postfix邮件内容的方法
2015/06/16 PHP
PHP入门教程之图像处理技巧分析
2016/09/11 PHP
js Function类型
2011/12/04 Javascript
js返回上一页并刷新的多种实现方法
2014/02/26 Javascript
jquery图片滚动放大代码分享(2)
2015/08/28 Javascript
Bootstrap入门书籍之(四)菜单、按钮及导航
2016/02/17 Javascript
Java遍历集合方法分析(实现原理、算法性能、适用场合)
2016/04/25 Javascript
jQuery Ajax 异步加载显示等待效果代码分享
2016/08/01 Javascript
Jquery调用iframe父页面中的元素及方法
2016/08/23 Javascript
详解jquery validate实现表单验证 (正则表达式)
2017/01/18 Javascript
JavaScript之iterable_动力节点Java学院整理
2017/06/29 Javascript
Javascript es7中比较实用的两个方法示例
2017/07/21 Javascript
详解vue 计算属性与方法跟侦听器区别(面试考点)
2018/04/23 Javascript
Vue框架TypeScript装饰器使用指南小结
2019/02/18 Javascript
Vue批量图片显示时遇到的路径被解析问题
2019/03/28 Javascript
vue 实现小程序或商品秒杀倒计时
2019/04/14 Javascript
JavaScript this使用方法图解
2020/02/04 Javascript
Javascript call及apply应用场景及实例
2020/08/26 Javascript
浅谈es6中的元编程
2020/12/01 Javascript
[56:01]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 Effect vs EG
2018/03/31 DOTA
python 判断一个进程是否存在
2009/04/09 Python
python3使用tkinter实现ui界面简单实例
2014/01/10 Python
使用Python编写简单网络爬虫抓取视频下载资源
2014/11/04 Python
在Pycharm中项目解释器与环境变量的设置方法
2018/10/29 Python
详解Django项目中模板标签及模板的继承与引用(网站中快速布置广告)
2019/03/27 Python
详解基于python-django框架的支付宝支付案例
2019/09/23 Python
详解Python多线程下的list
2020/07/03 Python
python 装饰器的基本使用
2021/01/13 Python
python 数据类型强制转换的总结
2021/01/25 Python
南非最大的在线时尚商店:Zando
2019/07/21 全球购物
优秀少先队工作者事迹材料
2014/05/13 职场文书
普通话宣传标语
2014/06/26 职场文书
2015年护理工作总结范文
2015/04/03 职场文书
个人廉政承诺书
2015/04/28 职场文书
解决Mysql的left join无效及使用的注意事项说明
2021/07/01 MySQL