1

フォームに文字列があり、

var k= '<html><div id="test">it is interesting</div></html>'

これをフォームの配列に変換しようとしています

<html>
<div id="test">
it
is
interesting
</div>
</html>

このタスクを実行するために Javascript を使用しています。分割機能を使用して単語間のスペースを検出して文字列を分割することはできますが、HTML タグを分割するにはどうすればよいですか。

4

1 に答える 1

2
var k='<html><div id="test">it is interesting</div></html>';
var a=k.match(/(<.+?>)|([^ ]+?(?=[ <]))/g);
console.log(a); // ["<html>", "<div id="test">", "it", "is", "interesting", "</div>", "</html>"]

更新:文字列に部分文字列"<>"(HTML では無効) を含めることができる場合は、少し変更して正規表現を使用してみてください。/(<.*?>)|([^ ]+?(?=[ <]))/g

更新:\n\r\tシンボル (改行、キャリッジ リターン、タブ) をスペースとして解釈する必要がある場合は、次の正規表現を使用してみてください/(<.*?>)|(\S+?(?=[\s<]))/g:*+

var k,a,rg=/(<.*?>)|(\S+?(?=[\s<]))/g;

k='<html><div id="test"> it is interesting</div></html>';
a=k.match(rg);
console.log(a); // ["<html>", "<div id="test">", "it", "is", "interesting", "</div>", "</html>"]

k='<div class=\"Normal\" algoscore=\"338\">\n <p><img src=\"/getBinaryFile.php?Id=69\" /></p>\n';
a=k.match(rg);
console.log(a); // ["<div class="Normal" algoscore="338">", "<p>", "<img c="/getBinaryFile.php?Id=69" />", "</p>"]
于 2012-08-07T05:56:36.617 に答える