本文实例讲述了JavaScript引用类型RegExp基本用法。分享给大家供大家参考,具体如下:
1、正则表达式定义
三个标志:全局模式g,不区分大小写模式i,多行模式m。
1) 字面量定义
var pattern = /[fe]at/gim;
2) 构造函数定义:
接收两个参数——要匹配的字符串模式和可选的模式字符串(g,i,m)。
var pattern = new RegExp("[fe]at","gim");
注意:
1) 若需要匹配的字符串中包含以下元字符,就必须对它们进行转义:( [ { / ^ & | ) ? * + . ] } 。
2) 由于构造函数定义正则表达式的参数是字符串,所以在某些情况下要对字符时行双重转义如/n,字符/在字符串中通常被转义为//,而在正则表达式字符串参数中就会变成////,字面量模式//w//hello//123/等价的字符串为“//w////hello////123”。
2、RegExp实例属性
1) global 表示是否设置了g标志。 2) ignoreCase 表示是否设置了i标志。 3) multiline 表示是否设置了m标志。 4) lastIndex 用于记录上一次匹配结束的位置,即下一次开始搜索下一个匹配项的位置,从0算起。 5) Source返回正则表达式的字符串表示,按照字面量模式返回而非传入构造函数的字符串模式返回。var pattern = new RegExp("//[fe//]at","i");alert(pattern.source);
以上代码返回/[fe/]at
3、RegExp实例方法
1) 继承的toLocaleString()
、toString()
、valueOf()
方法
toLocaleString()
:返回正则表达式的字面量,与创建正则表达式的方式无关。
toString()
:返回正则表达式的字面量,与创建正则表达式的方式无关。
valueOf()
:返回正则表达式本身。
var pattern1 = //[fe/]at/i);var pattern2 = new RegExp("//[fe//]at","i");alert(pattern1.toString()); // //[fe/]at/ialert(pattern1.toLocaleString()); // //[fe/]at/ialert(pattern2.toString()); // //[fe/]at/ialert(pattern2.toLocaleString()); // //[fe/]at/i
2) match()
方法
参数:用于匹配的正则表达式。
返回值:区分match()
的返回值主要是看是否设置g标志,没有设置g标志时与exec()
是等价的。
a. 如果设置g标志,那么返回的是包含所有匹配项的数组。
b. 如果没有设置g标志,那么返回的是包含第一个匹配项的数组,第0项是与整个正则表达式匹配的字符串,第1项是是与第1个子表达式相匹配的文本(如果有的话),第2项是与第2个子表达式相匹配的文本(如果有的话)。
3) exec()
方法
参数:要应用模式的字符串。
返回值:返回包含第一个匹配项信息的数组,没有匹配项的情况下返回null。
新闻热点
疑难解答
图片精选