2016-09-14 152 views
0

我有一些JS的簡單.replace()函數的問題。替換爲一個字符串,Javascript

這是我的代碼

console.log(URL); 
    URL.replace("-","/"); 
    console.log(URL); 

這是我的輸出:

folder1中-文件夾2-folder3 folder1中-文件夾2-folder3

第二個應該是

文件夾1/folder2/folder3

對不對?

如果你們從我的代碼需要,請讓我提前知道:)

感謝,

布拉姆

+1

[在JavaScript中替換所有出現的字符串]的可能重複(http://stackoverflow.com/questions/1144783/replacing-all-occurrences-of-a-string-in-java腳本)。 –

+0

[*「replace()'方法**返回一個新的字符串**,其中一部分或全部匹配替換爲替換。」*](https://developer.mozilla.org/zh-CN/ docs/Web/JavaScript/Reference/Global_Objects/String/replace) – epascarello

回答

3

正確的做法是一個全球性的正則表達式與g正則表達式,在這種情況下是/-/

後更換
console.log(URL); 
URL = URL.replace(/-/g,"/"); 
console.log(URL); 
+0

嗯,它的工作,爲什麼沒有Rajesh選項工作? 爲什麼它像你說的那樣工作? 「正則表達式」是做什麼的? –

+0

正則表達式匹配模式和字符串'替換'方法,你可以用你想要的東西來替換任何事件,'g'正則表達式修飾符用來匹配所有的事件,而通常只替換第一個事件[檢查這個] (http://www.w3schools.com/jsref/jsref_obj_regexp.asp) –

3

更換後,更換返回一個新字符串。它不會改變replace被調用的字符串。試試這個:

​​

要更換所有出現看看這個How to replace all occurrences of a string in JavaScript?

console.log(URL); 
URL = URL.replace(/-/g, '/'); 
console.log(URL); 
+0

一些進步,但現在我得到: folder1/folder2-folder3 –

+1

@ B.Wesselink你將不得不使用正則表達式。 'URL = URL.replace(/ -/g,「/」);' – Rajesh

+0

現在我得到一個「undefined」 –