我是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编码的字符会产生问题吗?
答案 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>