JS正则匹配

  正则表达式在js编程中应用非常广泛,js正则又称为规则表达式,程序员通常使用正则表达式来检索或替换那些符合某个规则的文本。总之,正则表达式是学习编程的基本语法。下面小编给大家介绍下js正则匹配之模式匹配的方法。

  正则表达式在js编程中应用非常广泛,js正则又称为规则表达式,程序员通常使用正则表达式来检索或替换那些符合某个规则的文本。总之,正则表达式是学习编程的基本语法。下面小编给大家介绍下js正则匹配之模式匹配的方法。


  1、JS中的正则表达式用“Regexp”的对象表示,可以用Regexp()构造函数来创建Regexp对象。


  例如用来寻找“所有以s结尾的字符串”,var pattern=new RegExp(""s$);


  除了以这种方式来创建还可以用直接量的语法来直接创建,就上面的例子可以这么写:var pattern=/s$/;正则表达式的直接量定义在双斜杠中。


  2、JS中用String对象来执行正则表达式模式寻找和检索替换操作的方法:


  search()方法是支持正则表达式中最简单的方法,参数是一个正则表达式,返回的是第一个与之匹配的字串的起始位置,如果找不到匹配的字串返回-1(不支持全局检索,忽略正则表达式参数修饰符g)。图一为具体代码,图二为执行结果

  3、String对象之replace()方法,用来执行检索替换操作。第一个参数是正则表达式,第二个参数是要替换的字符串。修饰符带g则源字符串中的所有与模式匹配的子串都将用第二个参数替换;修饰符不带g则替换所匹配的第一个子串。

  4、String对象之math()方法,它是最常用的正则表达式方法。只有一个正则表达式参数参数,返回的是一个由检索结果组成的数组。如果该正则表达式设置了修饰符g,则该方法返回了所有检索结果。


  自定义函数functi0n matchtest(){


  var text="wo11a22d122n,b33232u";


  var mat=text.match(/d+/g);


  alert(mat);


  }


  在body中加按钮


  运行结果将“11,22,122,33232”这些字符串返回了。

  5、正则表达式是RegExp对象来表示的,创建RegExp对象时,第一个参数包含了正则表达式的主题部分(需要注意的是不论是字符串的直接量还是正则表达式都是用“”作为转义字符的前缀,所以在RegExp创建对象时候使用到转义字符是必须用“\”)。RegExp第二个参数是可选的,它指的是正则表达式的修饰符(只能传g、i、m或者他们的组合)。


  实例:查找2个数字的正则表达式


  functi0n createRegExp(){


  var text="w11i22d122n,b33232d";


  var reg=new RegExp("\d{2}","g");


  var mat=text.match(reg);


  alert(mat);


  }


  执行结果“11,22,12,33,23”

  6、正则表达式属性:


  global,只读的布尔值,说明这个表达式是否带有修饰符g;


  ignoreCase,只读的布尔值,说明这个表达式是否带有修饰符i;


  multiline,只读的布尔值,说明这个表达式是否带有修饰符m;


  source,只读字符串,包含正则表达式文本;


  lastIndex,可读写整数,如果带有修饰符g则这个属性存储在整个字符串下次检索的开始位置。


  实例:


  functi0n zzbdssx(){


  var reg=new RegExp("\d{2}","g");


  alert("是否带有修饰符g:"+reg.global+"rn是否带有修饰符i:"+


  reg.ignoreCase+"rn是否带有修饰符m:"+reg.multiline+


  "rn正则表达式文本:"+reg.source+"rn下个位置:"+reg.lastIndex);


  }

  7、RegExp方法总结之exec()方法:对制定的字符串执行正则表达式,没找到任何匹配返回null,找到了返回一个数组,不带g也返回一个数组,也没有全局匹配。测试代码如下:


  functi0n exectest(){


  var reg=new RegExp("\d{2}");//,"g");


  var text="w11ab22dn122n,u33232u";


  alert(reg.exec(text));


  }

  8、RegExp方法总结之test()方法:对某个字符串进行检测,包含一个正则表达式匹配结果返回true。测试代码如下:


  functi0n testtest(){


  var reg=new RegExp("\d{2}");//,"g");


  var text="w11ab22dn122yn,bu33232d";


  alert("执行结果:"+reg.test(text));


  }

  以上就是js正则匹配之模式匹配的方法,对js正则匹配不熟悉的新手们,赶紧来练习操作下吧。


  本篇文章使用以下硬件型号:联想小新Air15;系统版本:win10;软件版本:JS编辑器。

特惠
充值
7折购
今日还在继续学习的你,太棒了!
7
折扣券可用于
年费无限VIP
立 即
使 用
此活动优惠不可与其他活动叠加使用
有效期:000000
消息
登录即可查看消息记录
建议
意见
官方
客服
在线咨询

您可以与在线客服进行沟通获得帮助

工作日:9:00~22:00节假日:9:00~18:00

联系在线客服
虎课
积分
免费学习92000+个教程!
配套素材、源文件一键下载!
昨日学员已学习了30,584
并提交了317份作业!
登录后立即学习!
loading
微信扫码关注即可登录
您需要同意协议才可以进行登录
登录虎课网,每天免费学课程全站 92000+ 视频会员教程 | 每日可免费学 1
为确保账户信息安全
请先进行真实姓名验证后进行充值付款
立即验证