AngularJS和JS中的Hashtag链接

时间:2015-05-22 20:38:34

标签: javascript regex angularjs

我是regex表达式的新手,并不真正理解它们。我从PHP脚本获得评论,可能包含或不包含主题标签。我需要从主题标签中创建一个链接(不包括网址,或者主题标签中是否有逗号或空格)

到目前为止,我已经在网上找到了这个:

As Any

但是,生成的链接是:

string = string.replace(/(^|\s)(#[a-z\d-]+)/ig, "$1<a href=\"hashtag.php?tag=$2\">$2</a>");

我需要能够从tag = variable行中排除hashtag。如何修改表达式来实现这一点,是否有任何angularJS方法可以做到这一点?另外,语言(中文,日文等)或非UTF-8编码的字符会产生问题吗?

1 个答案:

答案 0 :(得分:0)

您可以从捕获组中排除#,以便不会在$2中将其捕获为

(^|\s)#([a-z\d-]+)/ig
  • #([a-z\d-]+)此处#移到外面,只捕获[a-z\d-]+

示例

string.replace(/(^|\s)#([a-z\d-]+)/ig, "$1<a href=\"hashtag.php?tag=$2\">#$2</a>");
// => <a href="hashtag.php?tag=thenameofhashtag">#thenameofhashtag</a>