我有包含HTML标记的文本。我想找出每个标记对的开始和结束位置。即开始标记的文本位置和标记的文本位置。
因为我知道用正则表达式匹配标记是复杂的(关于嵌套标记、引号等)我想使用一些更可靠的方法,例如DOM函数。
我的文本示例:
text <tag>text text </tag> text
使用我的示例文本,结果应该是两个数字-5(开始标记的位置)和26(结束标记最后一个字母的位置)
我的文本的复杂示例:
text <tag> text <tag2> text </tag2> text </tag> text
在第二个示例中,结果应该是两个数字-5和47(第一级标记的结束位置-我不关心嵌套标记)
这可能吗?期待任何提示和帮助。非常感谢。
虽然这并没有回答关于位置的问题,但您可能需要看看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);