JavaScript正则表达式

来源:互联网 发布:mac ctrl c ctrl v 编辑:程序博客网 时间:2024/05/20 03:46

RegExp对象表示正则表达式,对字符串进行模式匹配,存储检索模式。

定义方法:

1.直接量法:var regexp = /pattern/attributes;

2.创建对象:new RegExp(pattern, attributes);

参数:pattern:字符串,表示正则表达式的模式或其他正则表达式,attributes:可选字符串, 包含属性 "g"、"i" 和 "m",分别用于指定全局匹配、忽略区分大小写的匹配和多行匹配

返回值:RegExp对象

attributes:

image

pattern:

1.方括号[]:用于查找某个范围内的字符,查找字符

image

2.元字符:拥有特殊含义的字符,查找匹配字符

image

注:单词字符是英文字母以及数字;非单词字符是标点符号,空格以及汉字。

3.量词:匹配含n的字符串,匹配字符串

image

注:n可以是元字符,普通字符或字符串。

4.空号():子表达式

(pattern):匹配pattern并捕获匹配结果到缓存,后面可以使用 $1...$9 引用前面存储在缓存中的匹配结果。

(?:pattern):匹配pattern但不捕获匹配结果

5.竖线|:取或

 

RegExp对象的属性:

image

注:属性global、ignoreCase、multiline的值为true or false。

属性lastIndex存放一个整数,它声明的是上一次匹配文本之后的第一个字符的位置,即下次检索的起始点。不具有标志 g 和不表示全局模式的 RegExp 对象不能使用 该属性。

RegExp对象的方法:

image

方法exec:检索字符串中的正则表达式的匹配

语法:RegExpObj.exec(str)

返回值:匹配到返回结果数组,若未匹配到则返回null

结果数组:此数组的第 0 个元素是与正则表达式相匹配的文本,第 1 个元素是与 RegExpObject 的第 1 个子表达式相匹配的文本(如果有的话),第 2 个元素是与 RegExpObject 的第 2 个子表达式相匹配的文本(如果有的话),以此类推。

操作的属性:(1)length属性:结果数组的长度(2)index属性:匹配文本的第一个字符的位置(3)input属性:被检索的字符串str

(4)若正则表达式是全局的,它会在 RegExpObject 的 lastIndex 属性指定的字符处开始检索字符串 string。当 exec() 找到了与表达式相匹配的文本时,在匹配后,它将把 RegExpObject 的 lastIndex 属性设置为匹配文本的最后一个字符的下一个位置。

可以通过反复调用 exec() 方法来遍历字符串中的所有匹配文本。当 exec() 再也找不到匹配的文本时,它将返回 null,并把 lastIndex 属性重置为 0。

例子:

结果:

W3School is a, is, a---------result是数组,输出各下标对应的值,并用逗号隔开
W3School is a
is
a
29

方法test:检测一个字符串是否匹配某个模式

RegExpObject.test(str)
匹配返回true,否则返回false
原创粉丝点击