我使用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
答案 0 :(得分:3)
var path = 'C:\\User\\pic.jpg';
console.log(path);
path = path.replace(/\\/g,'\\\\');
console.log(path);
如果path具有单个反斜杠字符,则这些字符及其后的字符将被视为转义序列。
答案 1 :(得分:1)
答案 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
被解释为文字 u
和p
。除此之外,无法恢复“丢失”的字符,因为这是JavaScript的字符串语法的工作方式。第二个版本使用\\
,它是反斜杠,可以避免此问题。
如果您要从HTML元素中提取内容,那就另当别论了。仅当您首先正确提供了src
属性时,才应正确编码反斜杠。
如果您使用file://
路径说明符,则可以使用常规斜杠代替反斜杠,并避免我强烈鼓励您这样做的所有麻烦。
修改:
现在,如果您无法控制src
属性(应该首先在此处正确设置该属性),则可以尝试通过以下方式对其进行修复:
path = 'path:///' + $('id').attr('src').replace(/\\/, '/');