1

私はHTMLを読み取ることができるパーサーに取り組んでいましたが、それを分割するコードにより、生成された配列の他のすべてのエントリに「l」が挿入されます。

正規表現は次のとおりです。

textarea.value.split(/(?=<(.|\n)+>)/)

タブとラインターミネータを無視して、エントリ/出口/単一のHTML / XMLタグを分割することになっています(分割されたタグにそれらを追加するだけです)

何が起こっているのかについて、インサイトで教えてもらえますか?動作中のコードを表示し、ここで編集できます:http: //jsfiddle.net/termtm/ew7Mt/2/ コンソールで生成される結果を確認するだけです。

編集: MaxArtは正しいです最後のl<html>は異常を「l」にします

4

1 に答える 1

1

これを試して:

textarea.value.split(/(?=<[^>]+>)/);

しかし...Alnitakが言ったこと。正規表現に基づく本格的なHTMLパーサーは、特にJavascriptでの正規表現の機能サポートが不十分なため、ひどい(そして遅い)混乱になります。

私はまだあなたが見つけた奇妙な行動の理由を見つけなければなりません。「l」(ell)は、の最後の文字"<html>"、つまりHTMLコードの最初のタグであることに注意してください。それを別のものに変更すると、文字が変わることに気付くでしょう。

于 2012-05-30T09:00:34.147 に答える