使用javascript将URI中的反斜杠更改为正斜杠

时间:2013-06-12 22:14:47

标签: javascript regex escaping

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

并始终获得完全相同的输出,每次都保持字符串不变。

1 个答案:

答案 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'