如何用\转换字符串路径到\\?

时间:2018-07-27 20:06:46

标签: javascript jquery node.js electron

我使用jquery来获取html img元素的路径,如下所示:

path = $("#img_elemnt_id).attr('src')

它给了我一个字符串

path = "C:\User\pic.jpg"

我需要在函数中使用该字符串,但是只有在路径是这样的情况下它才起作用

path ="C:\\User\\pic.jpg"

有什么想法吗?

更新:您的答案不起作用。

path = "C:\\User\\pic.jpg"

在该功能中有效,但您的答案无效。

path = "C:\User\pic.jpg"
path = path.replace('\\,'\\\\')
console.log(path)

输出

C:Userpic.jpg

3 个答案:

答案 0 :(得分:3)

var path = 'C:\\User\\pic.jpg';
console.log(path);
path = path.replace(/\\/g,'\\\\');
console.log(path);

如果path具有单个反斜杠字符,则这些字符及其后的字符将被视为转义序列。

答案 1 :(得分:1)

使用replace

path = path.replace(/\\/g, "\\\\");

我进行了编辑以包括全局'g'标志,以使其成为正确的解决方案。

答案 2 :(得分:1)

这里的缺陷是,您首先声明字符串错误:

path = "C:\User\pic.jpg"
console.log(path)
// => C:Userpic.jpg

这点已经已经了。您必须在第一时间正确表达 否则反斜杠会破坏内容:

path = "C:\\User\\pic.jpg"
console.log(path)
// => C:\User\pic.jpg

这是因为\U\p被解释为文字 up。除此之外,无法恢复“丢失”的字符,因为这是JavaScript的字符串语法的工作方式。第二个版本使用\\,它是反斜杠,可以避免此问题。

如果您要从HTML元素中提取内容,那就另当别论了。仅当您首先正确提供了src属性时,才应正确编码反斜杠。

如果您使用file://路径说明符,则可以使用常规斜杠代替反斜杠,并避免我强烈鼓励您这样做的所有麻烦。

修改

现在,如果您无法控制src属性(应该首先在此处正确设置该属性),则可以尝试通过以下方式对其进行修复:

path = 'path:///' + $('id').attr('src').replace(/\\/, '/');