一尘不染

变量中的JavaScript反斜杠(\)导致错误

javascript

在Javascript中,当我在某些变量中添加反斜杠时:

var ttt = "aa ///\\\";
var ttt = "aa ///\";

JavaScript显示错误。

如果尝试限制用户输入此字符,我还会收到错误消息:

(("aaa ///\\\").indexOf('"') != -1)

限制用户输入中的反斜杠不是一个好策略,因为您必须向用户显示烦人的消息。

为什么反斜杠出现错误?


阅读 353

收藏
2020-04-25

共1个答案

一尘不染

反斜杠(\)是Javascript中的转义字符(以及许多其他类似C的语言)。这意味着当Javascript遇到反斜杠时,它将尝试转义以下字符。例如,\n是换行符(而不是反斜杠,后跟字母n)。

为了输出一个反斜杠,你需要逃脱 。这意味着\\将输出一个反斜杠(并\\\\输出两个反斜杠,依此类推)。原因"aa ///\"不起作用是因为反斜杠转义了"(将打印文字引号),因此您的字符串未正确终止。同样,该方法"aa ///\\\"也不起作用,因为最后一个反斜杠再次转义了引号。

请记住,对于要输出的每个反斜杠,都需要给Javascript两个。

2020-04-25