您的位置:首页 > Web前端 > JavaScript

js学习小计5-零宽断言

2013-08-13 14:20 218 查看
之前看到如何快速取得COOKIE名的时候,看到一个正则 /[^ =;]+(?=\=)/g,表示从来没接触到过这个语法,然后去翻了下资料,看到了零宽断言这个概念,真是拗口啊,完全联系不起来。

零宽断言:

用于查找在某些内容(但并不包括这些内容)之前或之后的东西,也就是说它们像\b,^,$那样用于指定一个位置,这个位置应该满足一定的条件(即断言),因此它们也被称为零宽断言。最好还是拿例子来说明吧:
断言用来声明一个应该为真的事实。正则表达式中只有当断言为真时才会继续进行匹配。

概念比较拗口,还是来看个实例吧!

"aa=45;bb=67".match(/[^=;]+/g); //'aa','45','bb','67'

然后我们在后面添加一个零宽断言,(?==)加了个条件,表示必须符合=左边的那个

"aa=45;bb=67".match(/[^=;]+(?==)/g); //'aa','bb'

这样的话,取cookie名不是方便多了,然后向到用(?<=exp)方法来取cookie值,结果发现JS不支持

再然后用负向零宽断言(?!exp)测试了下(匹配后面跟的不是exp的对象),发现取出的有问题

"aa=45;bb=67".match(/[^=;]+(?!=)/g); //'a','45','b','67'

求高人指点
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: