javascript - 按 HTML 实体分割字符串?

标签 javascript html regex

我的字符串包含很多 HTML 实体,就像这样

"Hello <everybody> there"

我想按 HTML 实体将其拆分为:

Hello
everybody
there

有人可以建议我一种方法吗?可能正在使用正则表达式?

最佳答案

看起来您可以直接拆分 &[^;]*; 正则表达式。也就是说,分隔符是以 & 开头、以 ; 结尾的字符串,中间可以有除 ; 之外的任何内容。

如果一行中可以有多个分隔符,并且您不希望它们之间有空字符串,则只需使用 (&[^;]*;)+ (或一般情况下 (delim)+ 模式)。

如果您可以在字符串的开头或前面有分隔符,并且您不希望它们成为由它们引起的空字符串,那么只需在拆分之前将它们 trim 掉即可。


示例

下面是演示上述想法的代码片段 ( see also on ideone.com ):

var s = ""Hello <everybody> there""

print (s.split(/&[^;]*;/));
// ,Hello,,everybody,,there,

print (s.split(/(?:&[^;]*;)+/));
// ,Hello,everybody,there,

print (
   s.replace(/^(?:&[^;]*;)+/, "")
    .replace(/(?:&[^;]*;)+$/, "")
    .split(/(?:&[^;]*;)+/)
);
// Hello,everybody,there

关于javascript - 按 HTML 实体分割字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3035825/

相关文章:

javascript - JQuery UI 选项卡导致屏幕显示为 "Jump"

html - CSS 不是样式化 html - 我已经尝试了一切

Javascript:如何删除 div 内所有输入所需的属性

javascript - 使用正则表达式获取 url 变量

regex - 完全重定向所有网址,只需更改域名

javascript - 点击添加div : am I "doing it wrong"?

javascript - Highcharts 在具有多个系列的多个图表上同步工具提示

javascript - 使用 JavaScript : How do I add to text when clicking the submit button

javascript - 触摸屏上的 Canvas 问题

regex - 这可以用正则表达式吗?