变量中的JavaScript反斜杠(\)导致错误在Javascript中,当我在一些变量中添加反斜杠时:var ttt = "aa ///\\\";var ttt = "aa ///\"; Javscript显示错误。如果我尝试限制用户输入此字符,我也会收到错误:(("aaa ///\\\").indexOf('"') != -1)限制用户输入的反斜杠不是一个好策略,因为你必须向用户显示恼人的消息。为什么我用反斜杠得到错误?
3 回答

海绵宝宝撒
TA贡献1809条经验 获得超8个赞
您可能想尝试以下操作,这或多或少是逃避用户输入的标准方法:
function stringEscape(s) { return s ? s.replace(/\\/g,'\\\\').replace(/\n/g,'\\n').replace(/\t/g,'\\t').replace(/\v/g,'\\v').replace(/'/g,"\\'").replace(/"/g,'\\"').replace(/[\x00-\x1F\x80-\x9F]/g,hex) : s; function hex(c) { var v = '0'+c.charCodeAt(0).toString(16); return '\\x'+v.substr(v.length-2); }}
这将使用转义反斜杠替换所有反斜杠,然后将其他不可打印的字符转义为其转义形式。它还可以转义单引号和双引号,因此即使在eval中也可以将输出用作字符串构造函数(考虑到您正在使用用户输入,这本身就是一个坏主意)。但无论如何,它应该完成你想要的工作。
添加回答
举报
0/150
提交
取消