JavaScript中的正则表达式RegExp

正则表达式的两种表示方法:
字面量形式和构造函数形式
var reg = /cat/g;
var reg = new RegExp("/cat/", "g");
可见无论哪一种方式都指明了正则表达式都由两部分组成:模式和标志。


标志分三种:g(global),i(ignore),m(multiline)。
global:匹配所有符合条件的字符串而不是遇到第一个解就终止。
ignore:忽略大小写
multiline:在到达一行末尾时会继续搜索下一行。


另外需要注意一点,正则表达式的模式中如果遇到特殊字符。需要进行转义。
比如:(){}/.[]


RegExp()的两个常用的方法:exec(),test()
这是需要花80%时间的两个方法。


exec()方法专门为捕获组而设计的。
也就是说可以设计多套匹配规则。
返回的是一个数组,数组的大小与匹配规则的数量一致。
数组第一项返回的是全局匹配结果,可以为null。
数组第二项返回的是第一个捕获组匹配的内容,可以为null。
其余的依次类推。


test()方法专门为检测而存在。如果你只需知道某个字符串是否匹配正则,而
不需要知道其文本内容。那么这个方法无疑是最佳选择。
var text = "mom and dad and baby";
var pattern = /mom( and dad( and baby)?)?/;
var matches = pattern.exec(text);
console.log(matches[0]);
console.log(matches[1]);
console.log(matches[2]);


结果显示:
mom and dad and baby
and dad and baby
and baby


var text = "mom and dad and baby";
var pattern = /mom and dad and baby/;
if (pattern.test(text)) {
console.log("matche");
}
结果显示:matche


另外还有构造函数属性,这样属于那20%的部分,暂且不顾。

猜你喜欢

转载自blog.csdn.net/qq_23143555/article/details/80658266