日期:2014-05-16  浏览次数:20372 次

JS的正则问题,都被搞晕了,不知道问题出在哪里,SOS SOS @_@ @_@ @_@ @_@
先上代码,再说问题

function regExHTML(h){
var re = new RegExp("<div[^>]*class=\"elist\"[^>]*>(<div[^>]*>(<div[^>]*>(<div[^>]*>(<div[^>]*>.*?</div>|.)*?</div>|.)*?</div>|.)*?</div>|.)*?</div>");
var r = re.exec(h);
alert(r);
}



这个正则是匹配嵌套div,我在RegexMatchTracer工具和http://tools.netshiftmedia.com/regexlibrary/测试都没问题,都能成功匹配,但是放到JS中,死活就是匹配失败,尝试用match、exec、test都不能匹配,也尝试用Perl风格写,但变量r始终是null,非常郁闷,请问这个正则哪里有问题?我是正则新手

------解决方案--------------------
var re = new RegExp("<div[^>]*class=\"elist\"[^>]*>(<div[^>]*>(<div[^>]*>(<div[^>]*>(<div[^>]*>.*?</div>
------解决方案--------------------
.)*?</div>
------解决方案--------------------
.)*?</div>
------解决方案--------------------
.)*?</div>
------解决方案--------------------
.)*?</div>");
换成
var re = /<div[^>]*class=\"elist\"[^>]*>(<div[^>]*>(<div[^>]*>(<div[^>]*>(<div[^>]*>.*?</div>
------解决方案--------------------
.)*?</div>
------解决方案--------------------
.)*?</div>
------解决方案--------------------
.)*?</div>
------解决方案--------------------
.)*?</div>/g;
试试
------解决方案--------------------
给点测试代码呗?