百科
首页 > 编程开发 > JAVA

JS正则匹配

  正则表达式在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编辑器。

相关词条

最新知识

最新百科

相关教程