【问题标题】:Change the backslashes in a URI to forward-slashes with javascript使用 javascript 将 URI 中的反斜杠更改为正斜杠
【发布时间】:2013-06-09 04:53:04
【问题描述】:

我正在编写一个允许用户导入图片的应用程序。我正在运行 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, '/') 你应该把那个替换成全局的。
  • 你在分配返回结果吗? someStr = someStr.replace('\\', '/');

标签: javascript regex escaping


【解决方案1】:

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'

【讨论】:

  • 有效!有一种感觉,我在做一些愚蠢的事情,非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-12
相关资源
最近更新 更多