JS对字符串的匹配之正则表达式模式匹配

2025-10-31 10:44:36

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

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

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

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

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

JS对字符串的匹配之正则表达式模式匹配

JS对字符串的匹配之正则表达式模式匹配

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

JS对字符串的匹配之正则表达式模式匹配

JS对字符串的匹配之正则表达式模式匹配

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

自定义函数functi0n matchtest() {

            var text = "wo11a22d122n,b33232u";

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

            alert(mat);

        }

在body中加按钮<input id="Button3" type="button" value="执行match" onclick="matchtest()"  />

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

JS对字符串的匹配之正则表达式模式匹配

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”

JS对字符串的匹配之正则表达式模式匹配

6、正则表达式属性:

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

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

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

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

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

实例:

functi0n zzbdssx() {

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

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

            reg.ignoreCase + "\r\n是否带有修饰符m:" + reg.multiline +

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

        }

<input id="Button5" type="button" value="执行正则表达式属性" onclick="zzbdssx()"  />

JS对字符串的匹配之正则表达式模式匹配

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

functi0n exectest() {

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

            var text = "w11ab22dn122n,u33232u";

            alert(reg.exec(text));

        }

<input id="Button6" type="button" value="执行exec" onclick="exectest()"  />

JS对字符串的匹配之正则表达式模式匹配

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

functi0n testtest() {

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

            var text = "w11ab22dn122yn,bu33232d";

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

        }

<input id="Button7" type="button" value="执行test" onclick="testtest()"  />

JS对字符串的匹配之正则表达式模式匹配

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢