2013-06-12 97 views
2

我正在編寫一個可以讓用戶導入圖片的應用程序。我正在運行windows,因此當用戶選擇圖片時返回的文件路徑具有反斜線,這是我認爲導致javascript失敗時,我將路徑傳遞給我的導入方法。 我得到一個簡單的HTML文件輸入文件路徑,並使用帶有一個onclick調用我的javascript提交按鈕:將URI中的反斜槓更改爲使用javascript進行正斜槓

<input type="file" id="photo-to-import" /> 
<input type="button" value="Submit" onclick="console.log($('#photo-to-import').val().replace('/\\/g','/'))"/> 

的console.log通常在函數調用會去,我已經改變了它調試。如果我在一個文件路徑的圖片硬編碼,並經過和手動更改斜線,它進口的圖片,例如,我會複製/粘貼的路徑:

C:\Users\Name\Desktop\desktop app\images\imageName.png 

進入功能和更改斜線我結束了:

<input type="button" value="Submit" onclick="onPhotoURISuccess('C:/Users/Name/Desktop/desktop app/images/imageName.png')"/> 

和這個偉大的工程。我試過

.replace('\\\\', '/') 
.replace('\\', '/') 
... 

並且總是得到完全相同的輸出,該字符串每次都不變。

+0

'.replace(/ \\/g,'/')'你可能應該讓它取代全局。 – adeneo

+1

你是否分配了返回結果? someStr = someStr.replace('\\','/'); – veritasetratio

回答

4

replace('/\\/g','/')更改爲replace(/\\/g,'/'),用引號將試圖替換字符串'/\\/g'的文字匹配,而不是使用正則表達式。

例如,'foo /\\/g bar'.replace('/\\/g','/')會給你'foo/bar',而'C:\\Users\\Name\\Desktop\\desktop app\\images\\imageName.png'.replace(/\\/g,'/')會給你'C:\Users\Name\Desktop\desktop app\images\imageName.png'

+0

作品!有一種感覺,這是我正在做的傻事,非常感謝! –