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