1

HTML タグを含むテキストがあります。各タグペアの開始位置と終了位置を知りたいです。それは、開始タグのテキスト位置とタグのテキスト位置です。

タグを正規表現と一致させるのは複雑であることを知っているので (ネストされたタグ、引用符などに関して)、DOM 関数など、より信頼性の高い方法を使用したいと思います。

私のテキストの例:

text <tag>text text </tag> text

サンプル テキストを使用すると、結果は 5 (開始タグの位置) と 26 (終了タグの最後の文字の位置) の 2 つの数字になります。

私のテキストの複雑な例:

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

2 番目の例では、結果は 5 と 47 の 2 つの数値になります (第 1 レベルのタグの終了位置 - ネストされたタグは気にしません)。

これは可能ですか?ヒントとヘルプを楽しみにしています。ありがとうございました。

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 に答える