在Javascript中,当我在某些变量中添加反斜杠时:
var ttt = "aa ///\\\"; var ttt = "aa ///\";
JavaScript显示错误。
如果尝试限制用户输入此字符,我还会收到错误消息:
(("aaa ///\\\").indexOf('"') != -1)
限制用户输入中的反斜杠不是一个好策略,因为您必须向用户显示烦人的消息。
为什么反斜杠出现错误?
反斜杠(\)是Javascript中的转义字符(以及许多其他类似C的语言)。这意味着当Javascript遇到反斜杠时,它将尝试转义以下字符。例如,\n是换行符(而不是反斜杠,后跟字母n)。
\
\n
为了输出一个反斜杠,你需要逃脱 它 。这意味着\\将输出一个反斜杠(并\\\\输出两个反斜杠,依此类推)。原因"aa ///\"不起作用是因为反斜杠转义了"(将打印文字引号),因此您的字符串未正确终止。同样,该方法"aa ///\\\"也不起作用,因为最后一个反斜杠再次转义了引号。
\\
\\\\
"aa ///\"
"
"aa ///\\\"
请记住,对于要输出的每个反斜杠,都需要给Javascript两个。