使用javascript拆分句子并将其存储到数组中

使用javascript拆分句子并将其存储到数组中,javascript,regex,Javascript,Regex,我正在尝试拆分一个长字符串,它是html标记和普通单词和符号的组合 例如,考虑, var k= '<html><div id="test">it is interesting, but I love you.</div></html>' var k='这很有趣,但我爱你。' 我正在尝试拆分此字符串并将其存储到数组中,如 <html> <div id="test"> it is interesting , but I

我正在尝试拆分一个长字符串,它是html标记和普通单词和符号的组合

例如,考虑,

var k= '<html><div id="test">it is interesting, but I love you.</div></html>'
var k='这很有趣,但我爱你。'
我正在尝试拆分此字符串并将其存储到数组中,如

<html>
<div id="test">
it
is
interesting
,
but 
I 
love 
you
.
</div>
</html>

信息技术
是
有趣的
,
但是
我
爱
你
.
我知道如何区分html标记和名称,但我在使用下划线、句号、comas和分号等符号时遇到了麻烦

我的代码如下所示

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>"]

var k,a,rg=/()|(\S+?(?=[\S你试过()命令吗?

有趣的是有人问这个问题,这里是我昨天写的一把小提琴,它应该满足你的要求:

function GetInnerTextAsArray(text) {
    var arr,
        tmp = document.createElement("DIV");

        tmp.innerHTML = text;
        text = tmp.textContext||tmp.innerText;

    arr = text.split(/[\s,;]);
    return arr;    
}​

这将在空格上拆分,这不是OP真正要求的。如果只比较单词,是否需要逗号和句点?为什么不先去掉它们,然后通过此函数运行该字符串?不,我只是更改样式…其余的应该保持不变…因此我不需要从原始内容中删除任何内容您想拆分html吗?也许简单地将其转换为html,然后使用DOM方法查找和更改您想要的元素会更容易些?我正在使用它进行逐字比较并更改html样式。我正在使用innerhtml进行输入,然后我想添加基于匹配单词的样式。作为旁注,请注意在使用正则表达式解析HTML时要小心。在处理HTML时(即使它是由您自己生成的)。例如,HTML实体和UTF字符编码。请检查这个SO问题,例如:。您能试试这个吗?
var rg=/()|(\w+)|([\s+])/g;