我正在编写一个允许用户导入图片的应用程序。我正在运行 Windows,因此当用户选择图片时返回的文件路径有反斜杠,我认为这就是当我将路径传递给导入方法时导致 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'
code> 和 'C:\\Users\\Name\\Desktop\\desktop app\\images\\imageName.png'.replace(/\\/g,'/')
将给你'C:\Users\Name\Desktop\desktop app\images\imageName.png'
。
关于javascript - 使用 javascript 将 URI 中的反斜杠更改为正斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17076309/