1、语法 var expression= /pattern/flags
其中的模式部分可以是任何简单或复杂的正则表达式,可以包含字符类、限定符、分组、向前查找、以及反向引用。每个正则表达式可以带有一个或多个标志。
g--表示全局模式,即模式将被用于所有字符串,而非在发现第一个匹配项时立即停止
i--表示不区分大小写模式,即在确定匹配项时忽略模式与字符串的大小写
m--表示多行模式,即在到达一行文本末尾时还会继续查找下一行是否存在与模式匹配的项
2、模式中的所有元字符必须转义:元字符包括 ( [ { \ ^$ | ) ? * + .
这些元字符在正则表达式中都有一种或多种特殊用途,因此想要匹配字符串中包含的这些字符,就必须对它们进行转义
3、元字符
正则表达式语言由两种疾病字符类型组成:原义文本字符和元字符。元字符使正则表达式具有处理能力。
所谓元字符是指那些在正则表达式有特殊意义的专用字符,可以用来规定前导字符(位于元字符前面的字符)在目标对象中出现模式较为常用元字符: + * ? 其中+元字符规定其前导字符必须在目标对象中连续出现一次或多次;*元字符规定其前导字符必须在目标中出现零次或连续多次 ;?元字符规定其前导字符必须在目标对象中连续出现零次或一次。
4、RegExp实例方法
(1)RegExp对象主要方法是exec(),该方法是专门为捕获组而设计的。exec()介绍一个参数,即要应用模式的字符串,然后返回包含第一个匹配信息的数组;或者在没有匹配项的情况下返回null。返回的数组虽然是Array的实例,但包含两个额外的属性:index和input。
其中,index表示匹配项在字符串中的位置,而input表示应用正则表达式的字符串。在数组中,第一项是与整个模式匹配的字符串,其它项时与模式中的捕获组匹配的字符串。
var text="mom and dad and baby"
var pattern =/mom( and dad (and baby)? )?/gi;
var maches=pattern.exec(text);
alert(matches.index); // 0
alert(matches.input); //"mom and dad and baby"
alert(match[0]); // "mom and dad and baby"
alert(match[1]); // "and dad and baby"
alert(match[2]); //"and baby"
例子中存在两个捕获组。最内部的捕获组匹配"and baby",而包含它的捕获组匹配"and dad"或者"and dad and baby"。当把字符串传入exec()方法之后,发现一个匹配项。因为整个字符串本身与模式匹配,所以返回的数组matchs的index属性值为0,数组中的第一项是匹配整个字符串,第二下包含与第一个不会组匹配的内容,第三项包含与第二个捕获组匹配的内容。
(2)第二个方法是test(),它接受一个字符串参数。在模式与改该参数匹配的情况下,返回true,否则返回false。经常被用在if中不需要知道文本内容,就可得出目标字符串与某个模式是否匹配。
5、模式的局限性
不支持以下匹配模式
(1)匹配字符串开始和结尾的\A和\Z锚
(2)向后查找(lookbehid)
(3)并集合交叉集
(4)原子组
(5)Unicode支持
(6)命名的捕获组
(7)s和x匹配模式
(8)条件匹配
(9)正则表达式注释