【发布时间】:2012-04-27 06:15:36
【问题描述】:
相当简单的 HTML(省略号表示代码较多):
...Profile">
Some text
</a>...
使用 JavaScript 的在线 RegEx 测试器 (http://regexpal.com/),我可以使用以下表达式提取“一些文本”(注意它包含换行符):
(?=Profile">)[\s\S]*(?=</a)
(不幸的是,JavaScript 不支持后视,所以我也提取了Something"> 以稍后将其删除。但是,问题是下面的代码
var ShowContent = document.getElementById(id);
ShowContent = ShowContent.innerHTML;
var patt3=/Profile">[\s\S]*(?=<)/;
var GetName=patt3.exec(ShowContent);
alert(GetName);
不提取在线测试器显示的内容,但它还包括“某些文本”之后的整个 HTML 代码(IE,不仅是结尾 < /a,还包括后面的所有内容)。
有人有什么建议吗?
【问题讨论】:
-
有人有什么建议吗? - 是的。不使用正则表达式来解析 HTML 将是一个很好的开始。
-
谢谢。以后肯定会学DOM,不过现在急需一个临时解决办法。
标签: javascript regex html-parsing