我从ajax调用得到了一些html代码作为响应。我想获得特定div的内容。这是html:
<html>
.
.
<div id="div-test">
.
.
</div><!--/div-test-->
.
.
</html>
注意:我使用<!--/div-test>
,因为div#div-test
包含更多div。
这是我的正则表达式:
/<div[^.]*id=\"div\-test\"[^.]*>(.*?)<\/div><\!\-\-\/div\-test\-\->/
但它根本不起作用。当我尝试匹配它时,我得到的只是null
值。那么,我的正则表达式是错的还是还有什么我需要做的?
答案 0 :(得分:1)
如果您正在寻找非正则表达式方法,并且您不想直接在页面上附加内容,则可以创建文档片段并在那里搜索:
var content = ""; // HTML FROM AJAX
var div = document.createElement('div');
div.innerHTML = content;
ajax_element = div.firstChild;
var test_content = ajax_element.getElementById('div-test').innerHTML;
作为一种正则表达式的方法,尽管我可以提供反对意见,但这可能符合您的需求:
var search_id = "div-test";
var r = new RegExp("<div[^>]*?id=[^\"]*?[^']*?"+search_id+"[^\"]*?[^']*?[^>]*?((?s).*)<\/div><!--\/"+search_id+"-->");
答案 1 :(得分:-1)