2

我正在编写一个可以让用户导入图片的应用程序。我正在运行 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('\\', '/')
...

并且总是得到完全相同的输出,字符串每次都不变。

4

1 回答 1

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'

于 2013-06-12T22:19:32.657 回答