新手学js:正则表达式之断言

来源:互联网 发布:怪物猎人ol捏脸数据男 编辑:程序博客网 时间:2024/06/07 12:01

        先看一道题,判断一个字符串中是否同时含有字母a和b。具体的思路是,先从第一个字符开始遍历,如果有字母a,再返回第一个字母重新遍历,如果有b,则说明符合条件。否则不符合条件。

        在javascript的正则表达式中有一种模式可以向前(即向字符串的尾部)匹配,但是下次匹配的起始位置又不会改变,即  使用这种模式index不会改变。等于是从头到尾查找一遍,然后又返回开始位置了。

此模式为 :  (?=n)     量词匹配任何其后紧接指定字符串 或表达式n 的字符串

var reg=/(?=.*a)(?=.*b)\w{2,}/;reg.test('sdajhb');//truereg.test('bhgy');//false;

另外还有一种是(?!n),这个跟上面的刚好相反,表示不包含。