2016-06-09 58 views
0

如何在JavaScript中的字符串中替換所有出現的「http://localhost」?我有res=res.replace(/^http\:\/\/localhost, url);,但它不起作用。我如何解決它?全部替換爲javascript

url是一個變量,但「localhost」是一個字符串。

UPDATE:

與下面的解決方案,我仍然得到:ReferenceError: localhost is not defined。我錯過了什麼?

更新2:

這是(Perl的)代碼插入JS在網頁:

$form .= qq|<script>res='$doc'; loc=document.location.href; url=loc.substring(0,loc.indexOf(":8080")); res=res.replace(/http\:\/\/localhost/g, url); document.location='data:text/html;charset:utf-8,' + res; </script>|; 
+2

聲明未完成。 – Dere0405

+0

@ Dere0405我相信我現在完成了。 – kepj

+0

那麼,如果你使用下面的解決方案得到這個結果,那麼你就錯了。 – epascarello

回答

0
res=res.replace(/http\:\/\/localhost/g, url); 

'G' 表示全部更換。

+0

我收到了:'ReferenceError:localhost is not defined' – kepj

+0

請注意,在正則表達式開頭的^確保它只會匹配一次(在字符串的開始處)。 – stewbasic

0

使用/克至每替換髮生在你的字符串

像這樣的事情

str = str.replace(/http:\/\/localhost/g,''); 
+0

我得到:'ReferenceError:localhost沒有定義'。顯然我沒有一個變量'localhost'。 – kepj

+0

@kepj代碼中沒有變量'localhost'。它是一個正則表達式,它不是一個變量。 – Barmar

+0

@Barmar控制檯抱怨我沒有變量'localhost'。我知道我沒有一個。我不明白爲什麼它抱怨! – kepj