1

我有包含 HTML 标签的文本。我想找出每个标签对的开始和结束位置。即开始标签的文本位置和标签的文本位置。

因为我知道用正则表达式匹配标签很复杂(关于嵌套标签、引号等)。我想使用一些更可靠的方法——例如 DOM 函数。

我的文字示例:

text <tag>text text </tag> text

使用我的示例文本,结果应该是两个数字 - 5(开始标签的位置)和 26(结束标签的最后一个字母的位置)

我的文本的复杂示例:

text <tag> text <tag2> text </tag2> text </tag> text

在第二个示例中,结果应该是两个数字 - 5 和 47(第一级标签的结束位置 - 我不关心嵌套标签)

这可能吗 ?期待任何提示和帮助。谢谢你。

4

1 回答 1

0

虽然这没有回答有关职位的问题,但您可能想查看 XMLDom。您必须人为地为文档创建一个根节点,但应该可以:

var txt = "text <tag> text <tag2> text </tag2> text </tag> text";
txt = '<root>' + txt + '</root>';

var parser = new DOMParser();
var xmlDoc = parser.parseFromString(txt, "text/xml");

alert(xmlDoc.firstChild.childNodes);
于 2012-05-13T08:51:53.047 回答