\1.使用new RegExp()生成一个正则对象时注意像一些元字符需转义,例如:
var reg = new RegExp("\\w");
var reg = /\w/;
//上面两种方式相等
2.四种零宽断言:
-
先行断言
-
(?=exp)
顺序肯定环视,表示所在位置右侧能够匹配exp -
(?!exp)
顺序否定环视,表示所在位置右侧不能匹配exp
-
-
后发断言
-
(?<=exp)
逆序肯定环视,表示所在位置左侧能够匹配exp -
(?<!exp)
逆序否定环视,表示所在位置左侧不能匹配exp
-
先行断言(?=表达式):
var reg = /(?=[c])[\w]+/g;
var str = 'cat hat c5 monkey';
str.match(reg);
//匹配结果:cat c5
后发断言(?<=表达式):
var reg = /(?<=[c])[\w]+/g;
var str = 'cat hat c5 monkey';
str.match(reg);
//匹配结果:at 5
负向零宽度先行断言(?!表达式):
var reg = /(?![c])[\w]+/g;
var str = 'cat hat c5 monkey';
str.match(reg);
//匹配结果:at hat 5 monkey
负向零宽度后发断言(?<!表达式):
var reg = /(?<![h])[0-9]+/g;
var str = 'cat hat c5 monkey';
str.match(reg);
//匹配结果:5