我的文字包含HTML标记。我想找出每个标签对的起始位置和结束位置。这是标签的打开标签和文本位置的文本位置。
因为我知道匹配标签与正则表达式很复杂(涉及嵌套标签,引号等)。我想使用一些更可靠的方法 - 例如DOM功能。
我的文字示例:
text <tag>text text </tag> text
使用我的示例文本,结果应该是两个数字 - 5(开始标记的位置)和26(结束标记的最后一个字母的位置)
我的文字的复杂例子:
text <tag> text <tag2> text </tag2> text </tag> text
在第二个例子中,结果应该是两个数字 - 5和47(第一级标记结尾的位置 - 我不关心嵌套标记)
这可能吗?期待任何提示和帮助。谢谢。
答案 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);