我在表单中有一个字符串,
var k= '<html><div id="test">it is interesting</div></html>'
,
我正在尝试将其转换为形式数组
<html>
<div id="test">
it
is
interesting
</div>
</html>
我正在使用 Javascript 来执行此任务。我可以使用拆分函数检测单词之间的空格来拆分字符串,但我该如何拆分 HTML 标记。
最佳答案
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>"]
关于javascript - 将字符串拆分为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11839715/