【发布时间】:2012-08-07 13:15:19
【问题描述】:
我正在尝试拆分一个长字符串,它是 html 标记和普通单词和符号的组合。
例如,考虑,
var k= '<html><div id="test">it is interesting, but I love you.</div></html>'
我正在尝试拆分此字符串并将其存储到数组中,例如
<html>
<div id="test">
it
is
interesting
,
but
I
love
you
.
</div>
</html>
我知道如何分隔 html 标记和名称,但我在使用下划线、句号、逗号和分号等符号时遇到了问题。
我的代码是这样的
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>"]
如何用正则表达式分隔符号??
【问题讨论】:
-
出于什么目的要拆分该 html?也许简单地将其转换为 html,然后使用 DOM 方法来查找和更改您想要的元素会更容易?
-
我将它用于逐字比较并更改 html 样式..
-
我正在使用 innerhtml 进行输入,然后我想根据匹配的单词添加样式..
-
附带说明,请注意使用正则表达式解析 HTML。处理 HTML 时有很多极端情况(即使它是您自己制作的)。例如,HTML 实体和 UTF 字符编码。检查此 SO 问题以获取示例:stackoverflow.com/questions/3035825/….
-
你可以试试这个吗?
var rg=/(<.*?>)|(\w+)|([\S+])/g;
标签: javascript regex