在字符串正则表达式

时间:2017-08-29 18:56:16

标签: javascript regex

我在这个网站上看了很多例子,但仍然不能完全正确。我想抓住><之间的内容。 示例字符串:

<div class='col-lg-12 hintDisplay'>slavery <b>ALSO USE</b> human trafficking</div>

首先我做了:

var regexp = />(.*?)</g;
var matches_array = item.toString().match(regexp);
console.log(matches_array);

得到了:

>slavery <,>ALSO USE<,> human trafficking<

然后我读了更多并尝试过:

var regexp = /(>)(.*?)(?=<)/g;
var matches_array = item.toString().match(regexp);
console.log(matches_array);

现在:

>slavery ,>ALSO USE,> human trafficking

我找不到关于如何摆脱领先>的文件。那么如何抓住><之间的内容?

2 个答案:

答案 0 :(得分:2)

在这种情况下,我喜欢做一个正则表达式:

var regexp = />([^<]+)</;

这说以&gt;开头然后至少1个非&lt;然后是&lt;

尝试使用。*?通常会导致您遇到的问题:)

https://regex101.com/r/UJrVWd/1

答案 1 :(得分:2)

在我看来,您应该使用内置的 HTML解析器并使用JQuery 或类似的东西来从HTML中获取文本。

不应该使用正则表达式HTML 的一些原因可以在这里找到:

  

您无法使用正则表达式解析[X] HTML。因为正则表达式无法解析HTML。正则表达式不是可用于正确解析HTML的工具。

RegEx match open tags except HTML self-contained tags