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