使用javascript在文本中查找HTML标记的位置,最好不要使用正则表达式?

时间:2012-05-13 08:21:52

标签: javascript html regex dom

我的文字包含HTML标记。我想找出每个标签对的起始位置和结束位置。这是标签的打开标签和文本位置的文本位置。

因为我知道匹配标签与正则表达式很复杂(涉及嵌套标签,引号等)。我想使用一些更可靠的方法 - 例如DOM功能。

我的文字示例:

text <tag>text text </tag> text

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

我的文字的复杂例子:

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

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

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

1 个答案:

答案 0 :(得分: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);