我正在嘗試創建一個JavaScript程序,用鏈接替換某些文本模式。但是由於網頁上的某些網址存在模式,因此會阻止網址鏈接。正則表達式來排除URL的
我特別希望排除模式,如果它包含在一個URL中,例如這裏是我當前的Regex代碼。
$els.replaceText(/(\bX00[A-Z0-9]{7}\b)/gi, '<span class="context context_ident">$1<\/span>');
一些示例文本:
項:X00132BhJk
www.domain.com/X00132BhJk
www.domainsearch.com/search?ident=X00132BhJk
X00132BhJk
X00132BhJk
斜體參考文獻應選擇和更換然而包含域內應該不是引用。我遇到的問題是參考。
最初我嘗試了\sX00[A-Z0-9]{7}\s
,但是當參考出現在頁面的最左側(句子中的第一個單詞)時,它沒有被選中。同樣如此,它不會選擇是否遵循句號或冒號先於。
有沒有一種方法可以排除URL的排除/?和=是否是直接前面的字符,但在所有其他情況下選擇?
問題是,'X00132BhJk1是Intranet內的完全有效的URL,例如(通過防火牆內的該名稱指定主機)。編寫用於驗證URL的正則表達式非常困難。您可以做的最好的辦法是找到一些無效的案例,例如包含無效字符的網址,或者以明顯的方式變形。 – 2014-09-06 13:37:48