RegExp类型

来源:互联网 发布:简单的java项目实例 编辑:程序博客网 时间:2024/05/22 00:54

每个正则表达式都可带有一个或者多个标志,用以标明正则表达式的行为。正则表达式的匹配模式支持下列3个标志:

g:表示全局(global)模式,即模式将被应用于所有字符串,而非在发现第一个匹配项时立即停止。

i: 表示不区分大小写(case-insensitive)模式,即在确定匹配项时忽略模式与字符串的大小写

m: 表示多行(multiline)模式,即在到达一行文本末尾时还会继续查找下一行中是否存在与模式匹配的项。

//匹配字符串总所有"at"的实例

var pattern1= /at/g;

//匹配第一个"bat"或"cat",不区分大小写

var pattern2 =/[bc]at/i;

//匹配所有以"at"结尾的3个字符的组合,不区分大小写

var pattern3= /.at/gi;

RegExp对象的主要方法是exec(),该方法是专门为捕获组而设计的。exec()接受一个参数,即要应用模式的字符串,然后返回包含第一个匹配项信息的数组;或者在没有匹配项的情况下返回null。返回的数组虽然是Array的实例,但包含两个额外的属性:index和input.其中,index表示匹配项在字符串中的位置,而input表示应用正则表达式的字符串。在数组中,第一项是与整个模式匹配的字符串,其他项是与模式中的捕获组匹配的字符串

对于exec()方法而言,即使在模式中设置了全局标志(g),它每次也只返回一个匹配项。在不设置全局标志的情况下,在同一个字符串上多次调用exec()将始终返回第一个匹配项的信息。在设置了全局标志的情况下,每次调用exec()则都会在字符串中继续查找新匹配项。

正则表达式的第二个方法是test(),他接受一个字符串参数。在模式与该参数匹配的情况下返回true.否则,返回false。在只想知道目标字符串与某个模式是否匹配,但不需要知道其文本内容的情况下,使用这个方法非常方便。因此,test()方法经常被用在if语句中。