正则表达式/分句

时间:2017-01-12 16:07:40

标签: javascript regex split

我有一个包含属性的句子:"hey how <span target="">you</span>"

我想将'hey', 'how', '<span target="">you</span>'放在数组中。

我使用了string.split(' ')并获得了['hey','how','<span','target="">you</span>']

是否可以拆分所有单词并同时使用正则表达式,以便捕获以<开头并以>结尾的单词?

谢谢

4 个答案:

答案 0 :(得分:1)

如果嵌套HTML标记的级别为零,那么这将有所帮助:

console.log('hey how <span target="">you</span>'.match(/(?!<)\S+|<(\w+)\b[^]*?\/\1>/g));

答案 1 :(得分:0)

正则表达式不应该用于解析html - RegEx match open tags except XHTML self-contained tags

也许你应该使用jQuery?

thread_date

答案 2 :(得分:0)

这应该可以解决问题,但正如@Scott所说,正则表达式可能不适合处理html,具体取决于您的数据。

const regex = /\<.+?>.*?\<.+?>|\S+/g;
const str = `hey how <span target="">you</span>`;

console.log(str.match(regex));

答案 3 :(得分:0)

我想说不要使用Regex解析html。使用jquery或javascript函数更加简单和安全。

有关,

<div id="sentence">
  hey how <span target="">you</span>
<div>

做点什么

$("#sentence").text() // JQuery

document.getElementById("sentence").innerText // Javascript

两者都会给你 - &gt;嘿你好吗