2013-06-12 53 views
0

嗨我已經有一個腳本來解析鏈接中的@mentions,但是這需要不止一次加載,並且目前它已經破壞了已經作爲鏈接解析的東西,所以我需要將它忽略已經包裹在標籤中的@mentions,但我看不到它的工作原理。忽略包含在鏈接中的@mentions

這是我到目前爲止有: /((?:^|[^a-zA-Z0-9_!#$%&*@@]|RT:?))([@@])([a-zA-Z0-9_\.]{1,20})(\/[a-zA-Z][a-zA-Z0-9_-]{0,24})?/g

的示例串是:

Hi @andre Hi <a href="">@jane</a> 

@andre應該被包裹在類似@jane一個標籤,並@jane已經在標籤<a href="">@jane</a>應該被忽略。

+0

請舉一個例子字符串。你的照片更好 –

+0

你應該給一些預期的輸入和輸出。此外,爲什麼你的正則表達式不起作用。 – acdcjunior

+0

因此,如果'([@@])([a-zA-Z0-9 _ \。] {1,20})'是一個'@提及',並且您自己包裝了它們,考慮到每次包裝' @無論什麼',你把它包裹成一個'... @無論',是不是足以得到所有'@提及',而不是跟着''?如果是這樣,這個正則表達式可以工作:'(?!([@@])([a-zA-Z0-9 _ \。] {1,20}))([@@])([a-zA- Z0-9 _ \。] {1,20})'。 – acdcjunior

回答

1

說明

此正則表達式將捕捉肉眼@names這是不是已經包裹在裏面像這樣<a href="">@jane</a>

正則表達式(?!>)([@@])([a-zA-Z0-9_\.]{1,20})\b(?!<)

<a href="">$0</a>

enter image description here

輸入文本替換: Hi @andre Hi <a href="http://some.url">@jane</a>

輸出文本:Hi <a href="">@andre</a> Hi <a href="http://some.url">@jane</a>

0

此問題的原因是因爲我正在將@註釋轉換爲即時鏈接,並且我正在加載其中包含要替換的附加內容。我正在運行linkify函數來鏈接導致問題的每一場比賽。

我無法在評論中得到所提供的答案,所以我嘗試了不同的方法。我知道添加額外內容的位置(靜態按鈕之前),所以我使用jquery slice功能來選擇運行該功能的元素。

var linkify = $('.user-profile-feed-item').slice(-4).find('.linkify'); 

這種方式也只是運行所需的功能,而不必求助於額外的正則表達式過濾。