我正在编写一个让用户导入图片的应用。我正在运行Windows,因此当用户选择图片时返回的文件路径有反斜杠,这是我认为当我将路径传递给我的导入方法时导致javascript失败的原因。 我通过一个简单的html文件输入获取文件路径,并使用提交按钮和onclick调用我的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 :(得分: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'
。