2015-05-22 36 views
0

我是新來的正則表達式,並不真正瞭解它們。我從一個可能包含或不包含hashtags的PHP腳本中獲得評論。我需要創建一個鏈接出來的主題標籤(不包括網址,或者如果主題標籤有一個逗號或一個空格)鏈接在AngularJS和JS中的鏈接標籤

到目前爲止,我在網上看了一下,發現這一點:

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

然而生成的鏈接是:

<a href="hashtag.php?tag=#thenameofhashtag">#thenameofhashtag</a> 

我需要能夠從tag =變量行中排除hashtag。我如何修改表達式來實現這一點,並有任何angularJS方式做到這一點?此外,語言(中文,日文等)或非UTF-8編碼的字符是否會產生問題?

回答

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>