声明表示条件的意思。声明量词包括正向声明和反向声明两种模式。
正向声明
指定匹配模式后面的字符必须被匹配,但又不返回这些字符。语法格式如下:
匹配模式(?=匹配条件)
声明包含在小括号内,它不是分组,因此作为子表达式。
【示例1】下面代码定义一个正前向声明的匹配模式。
var s = "one:1;two=2"; var r = /\w*(?==)/; //使用正前向声明,指定执行匹配必须满足的条件 var a = s.match(r); //返回数组["two"]
在上面示例中,通过 (?==)锚定条件,指定只有在\w*所能够匹配的字符后面跟随一个等号字符,才能够执行\w*匹配。所以,最后匹配的是字符串"two",而不是字符串"one"。
反向声明
与正向声明匹配相反,指定接下来的字符都不必匹配。语法格式如下:
匹配模式(?!匹配条件)
【示例2】下面代码定义一个反前向声明的匹配模式。
var s = "one:1;two=2"; var r = /\w*(?!=)/; //使用反向声明,指定执行匹配不必满足的条件 var a = s.match(r); //返回数组["one"]
在上面示例中,通过(?!=)锚定条件,指定只有在“\w*”所能够匹配的字符后面不跟随一个等号字符,才能够执行\w*匹配。所以,最后匹配的是字符串"one",而不是字符串"two"。