在Javascript Regex中,如何匹配哈希标签,但不与HTML代码匹配



这就是我获取文本正文标签的方式。

var tags =  body.match(/#([a-z0-9]+)/gi);

但是,如果句子是:

The brown #fox jumped over ‘ fence.

上面的正则表达式会将"8216;"视为标签,这是我不想要的。我只想用"狐狸"作为标签。

注意:我只想要一个基本的正则表达式解决方案。

试试这个:

/(^#|s#)([a-z0-9]+)/gi

现场演示:http://jsfiddle.net/DerekL/NpjyR/

或者这个:

/(^#|[^&]#)([a-z0-9]+)/gi   //this will exclude every &#

假设您有权访问 DOM,您可以使用 DOM 对 HTML 进行解码,然后匹配文本内容:

var temp = document.createElement('div');
temp.innerHTML = body;
var tags = temp.textContent.match(/#([a-z0-9]+)/gi);

试试这个:

#([a-z0-9]+)b(?!;)
喜欢 不喜欢

最新更新