javascript - js正则不支持持后瞻的问题
本文介绍了javascript - js正则不支持持后瞻的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
正则中有:(?<=exp)正向后瞻(文章http://www.cnblogs.com/rubylouvre/archive/2010/03/09/1681222.html)
但是js语言不支持,有什么替代方案么?
例如:
<div style="background:#f00;color:rgba(0,0,0,.2)">
<span style="background-color:rgb(0,0,0,1);border-color:#0cc;color:#aaa;">demo</span>
<span style='color:rgb(0,0,0,1)'>demo</span>
</div>
需求:匹配所有color:*,不匹配*color:*
我这么写的:
html.match(/[^(\w+\-)*]color:[\s\S]*?(?=;|"|')/gi);
//[";color:#fff", ";color:#fff", ";color:rgba(0,0,0,.2)", ";color:#aaa", "'color:rgb(0,0,0,1)"]
但是color前面总会带着一个分号";","'"等等。
有什么好的办法解决吗?
解决方案
var ptrn = /['";](color:[a-zA-Z0-9(),.#]{1,})[;'"]/ig;
var match;
while((match = ptrn.exec(html)) != null ){console.log(match[1])}
这篇关于javascript - js正则不支持持后瞻的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文