[英]Change the backslashes in a URI to forward-slashes with javascript
我正在編寫一個允許用戶導入圖片的應用程序。 我正在運行Windows,因此用戶選擇圖片時返回的文件路徑帶有反斜杠,這是我認為將路徑傳遞給import方法時導致javascript失敗的原因。 我通過簡單的html文件輸入獲取文件路徑,並使用提交按鈕和對JavaScript的onclick調用:
<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('\\', '/')
...
並且始終獲得完全相同的輸出,字符串每次都保持不變。
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'
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.