2015-10-05 21 views
1

我面臨一個問題。我有一個整個HTML頁面存儲在一個變量中,我想更改某些符合條件的URL。JS:正則表達式 - 以全文替換部分域

我們只查找某個頂級域名,比如說「.XYZ」,如果我們發現它,我們希望結尾爲「.XYZ.ABC」 - 只需添加「.ABC」即可。

例如<a href="http://example.xyz/">link</a>將改爲<a href="http://example.xyz.abc/">link</a>

但如果本地已有「名爲.abc」結尾,我們應該保留它。 我想改變所有鏈接的文本,因此SRC,href和還JS值一樣var link="123.xyz/1.bmp";

其他例子

www.123.xyz -> www.123.xyz.abc 
abc.xyz/1.bmp -> abc.xyz.abc/1.bmp 
eee.xyz.abc -> eee.xyz.abc 

回答

0

像這樣的東西應該工作:

text.replace(/\.xyz(?!\.abc)/g, ".xyz.abc") 
+0

它應該只工作對於鏈接...也許應該有一個標準,如果這個鏈接位於「」或「」只有那麼它可以改變一個文本。 所以,critera是:位於「」或「'且內部沒有空格的鏈接,檢查之前/之後的最後一個字符是.xyz還是萬一有雙重//(例如http:// 123 .xyz /)然後在第三個/(如果存在/)之前搜索文本,並且文本沒有在那裏結束,那麼只檢查結尾是否有.xyz。如果此標準符合,則將.xyz更改爲.xyz.abc 如果鏈接爲1.xyz.com/,則上面的代碼將失敗。我們只應該尋找.xyz結尾。 – user3234039