转义字符串中的反斜杠 - javascript

Max*_*Max 23 javascript escaping file input backslash

我需要显示当前所选文件的名称(在<input type="file">元素中).

一切都很好,唯一的问题是我得到这种字符串"C:\ fakepath\typog_rules.pdf"(browset自动将其作为输入元素的值).

当我尝试分割字符串'\''\\'由于未转义的斜杠而失败时.尝试匹配/替换斜线也失败了.有没有解决的办法?我需要这个至少在Opera和IE中工作(因为在其他浏览器中我可以使用FileReader)

EG我将"C:\ fakepath\typog_rules.pdf"作为输入,并希望得到"typog_rules.pdf"作为输出.

Rob*_*b W 27

出于安全原因,无法获取通过<input type="file" />元素引用的文件的真实完整路径.

这个问题已经提到,并且链接到有关此主题的其他Stack Overflow问题.


以前的答案,作为未来访问者的参考,通过标题,标签和问题到达此页面.
反斜杠必须被转义.

string = string.split("\\");
Run Code Online (Sandbox Code Playgroud)

在JavaScript中,反斜杠用于转义特殊字符,例如换行符(\n).如果要使用文字反斜杠,则必须使用双反斜杠.

因此,如果要匹配两个反斜杠,则必须使用四个反斜杠.例如,alert("\\\\")将显示包含两个反斜杠的对话框.

  • @Pankaj:你仍然弄错了,字符串的内存表示永远不会被转义.转义是序列化的问题..val()返回字符串未转义.不正确的是,在打印时,字符串的打印值可能不会往返,因为字符串文字需要转义. (2认同)

Que*_*tin 6

转义反斜杠字符。

foo.split('\\')
Run Code Online (Sandbox Code Playgroud)