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 相关文章推荐
Extjs TimeField 显示正常时间格式的代码
Jun 28 Javascript
jquery实现的可隐藏重现的靠边悬浮层实例代码
May 27 Javascript
javascript制作2048游戏
Mar 30 Javascript
jquery实现鼠标滑过显示二级下拉菜单效果
Aug 24 Javascript
打造自己的jQuery插件入门教程
Sep 23 Javascript
Javascript实现一个简单的输入关键字添加标签效果实例
Jun 01 Javascript
JS计算两个时间相差分钟数的方法示例
Jan 10 Javascript
在 vue-cli v3.0 中使用 SCSS/SASS的方法
Jun 14 Javascript
JavaScript数据结构与算法之二叉树实现查找最小值、最大值、给定值算法示例
Mar 01 Javascript
layui自定义ajax左侧三级菜单
Jul 26 Javascript
JavaScript eval()函数定义及使用方法详解
Jul 07 Javascript
js之ajax文件上传
May 13 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
使用 MySQL 开始 PHP 会话
2006/12/21 PHP
php中的静态变量的基本用法
2014/03/20 PHP
19个Android常用工具类汇总
2014/12/30 PHP
Aster vs Newbee BO5 第一场2.19
2021/03/10 DOTA
基于jsTree的无限级树JSON数据的转换代码
2010/07/27 Javascript
基于jquery的合并table相同单元格的插件(精简版)
2011/04/05 Javascript
原生js和jQuery随意改变div属性style的名称和值
2014/10/22 Javascript
xmlplus组件设计系列之选项卡(Tabbar)(5)
2017/05/03 Javascript
浅谈vue的props,data,computed变化对组件更新的影响
2018/01/16 Javascript
JavaScript设计模式之调停者模式实例详解
2018/02/03 Javascript
JQuery animate动画应用示例
2019/05/14 jQuery
vue elementUI 表单校验功能之数组多层嵌套
2019/06/04 Javascript
layer设置maxWidth及maxHeight解决方案
2019/07/26 Javascript
Vue的transition-group与Virtual Dom Diff算法的使用
2019/12/09 Javascript
Vue父子传递实例讲解
2020/02/14 Javascript
在Vue中使用HOC模式的实现
2020/08/23 Javascript
linux系统使用python获取cpu信息脚本分享
2014/01/15 Python
Python实现递归遍历文件夹并删除文件
2016/04/18 Python
对python中return和print的一些理解
2017/08/18 Python
python中Matplotlib实现绘制3D图的示例代码
2017/09/04 Python
基于Python3.6+splinter实现自动抢火车票
2018/09/25 Python
详解python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决
2019/08/27 Python
使用python实现对元素的长截图功能
2019/11/14 Python
Python发送邮件封装实现过程详解
2020/05/09 Python
HTML5的结构和语义(1):前言
2008/10/17 HTML / CSS
Ray-Ban雷朋西班牙官网:全球领先的太阳眼镜品牌
2018/11/28 全球购物
Shell脚本如何向终端输出信息
2014/04/25 面试题
艺术系应届生的自我评价
2013/10/19 职场文书
会走路的树教学反思
2014/02/20 职场文书
求职自荐信怎么写
2014/03/06 职场文书
《晚上的太阳》教学反思
2014/04/23 职场文书
机械加工与数控专业自荐书
2014/06/04 职场文书
反四风个人对照检查材料
2014/09/26 职场文书
KTV门卫岗位职责
2014/10/09 职场文书
英语演讲开场白
2015/05/29 职场文书
2019年教师入党申请书
2019/06/27 职场文书