我持有的HTML网页JavaScript变量和因安装,我需要之间抽取的一切<div id="LiveArea">,并</div>从使用JavaScript变量.
任何帮助是极大的赞赏.
小智 9
var html = "<stuff><div id=\"LiveArea\">hello stackoverflow!</div></stuff>";
var matches = html.match(/<div\s+id="LiveArea">[\S\s]*?<\/div>/gi);
var matches = matches[0].replace(/(<\/?[^>]+>)/gi, ''); // Strip HTML tags?
alert(matches);
Run Code Online (Sandbox Code Playgroud)
这应该可以做到:
pattern = /<div id="LiveArea">(.*?)<\/div>/;
matches = your_html_var.match(pattern);
the_string = matches[0];
document.write(the_string);
Run Code Online (Sandbox Code Playgroud)
仅使用正则表达式是不可能实现这一点的,除非该 div 内的 HTML 不包含其他 div。因为像 Jeremy 这样的模式会发生的情况是,它将匹配第一个结束 div 标签,而该标签不一定是 div#LiveArea 元素的结束标签。
如果您可以控制源 HTML,则可以插入一条注释,您可以使用该注释来匹配正确的“结束”位置。
还有其他仅使用 javascript 的选项,但它们都非常笨拙或 hacky
</div>标签。当您说“保存 html 页面的 Javascript 变量”时,我不确定我是否理解您的意思,但是如果您需要在这样的 div 之间提取 HTML,您可以使用该元素的 innerHTML 属性。
var e = document.getElementById('LiveArea');
if(e) alert(e.innerHTML);