这就是我获取正文标签的方式。
var tags = body.match(/#([a-z0-9]+)/gi);
但是,如果句子是:
The brown #fox jumped over ‘ fence.
上面的正则表达式将处理“8216;” 作为一个标签,这是我不想要的。我只想要“狐狸”作为标签。
注意:我只想要一个基本的正则表达式解决方案。
这就是我获取正文标签的方式。
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(?!;)