2013-04-08 61 views
1
// malformed string 
var str = "C:\Windows\Fonts"; 

// C:WindowsFonts 
alert(str.replace(/\\/g, "/")); 

我該如何正確更換\/,所以我可以得到C:/Windows/Fonts如何用Javascript中的正確斜槓替換反斜槓的格式錯誤的字符串?

+0

順便說一句,你知道訪問'C:\'只能在本地完成,而不能通過互聯網。 – 2013-04-08 08:25:18

+0

uhmmm ....這只是一個字符串的例子,我不想訪問計算機上的任何地方。我們可以專注於Javascript嗎? – user1643156 2013-04-08 08:28:18

+0

你確定你的字符串是否來自外部腳本?我做了簡單的PHP <?php echo「c:\ derp \ herp」?>,然後通過ajax(jquery)$ .ajax({url:「temp.php」,success:function(data){ alert(data);}});警報是正確的c:\ derp \ herp,正如我所料。 JS應該正常處理這樣的字符串。 – Tommi 2013-04-08 08:31:05

回答

1

因爲它是特殊字符使用逃生標誌

var str = "C:\\Windows\\Fonts"; 
+1

在javascript中,''''和'''做同樣的事情。 – slebetman 2013-04-08 08:04:46

+0

'str.replace(/ \\/g,「/」)'不能工作嗎?如何正確地替換'\\' ''' – user1643156 2013-04-08 08:04:58

+0

替換隻代替第一次出現,所以你需要這樣做或者實現循環。 「); – Robert 2013-04-08 08:12:47

0

您需要添加更多的反斜槓,以顯示特殊字符。

var str = "C:\\Windows\\Fonts"; 
     alert(str); 

每當您在JAvascript中使用特殊字符時,您都需要添加一個反斜槓。

+0

我知道,但是字符串沒有像例子那樣手動定義,而是從其他地方檢索到。 – user1643156 2013-04-08 08:11:07

+0

使用'str = str.replace(「\\」,「/」)。replace(「\\」,「/」);' – 2013-04-08 08:35:29

+0

根本不可擴展。如果字符串是「c:\ path \ to \ deep \ deep \ deeeeep \ directory」會怎麼樣? – Tommi 2013-04-08 08:37:20