4

有人知道为什么我Bad escapement使用以下代码在 JSHint 上出现错误吗?

var regexS = '[\?&]' + name + '=([^&#]*)';
4

2 回答 2

6

只是双重逃避\

var regexS = '[\\?&]' + name + '=([^&#]*)';

即使我猜测您将使用此字符串作为Regex对象,字符串中的字符也必须正确转义。默认情况下,a\会尝试转义下一个字符。如果您添加一个额外的 like \\,它会转义原始字符串\并计算为\最终字符串中的一个。

于 2012-11-01T00:28:18.033 回答
4

\? 不是有效的转义字符。尝试将其替换为 \\.

所以它看起来像:

var regexS = '[\\?&]' + name + '=([^&#]*)';

请记住,“\”会转义后面的字符。这就是为什么 \\ 以单斜杠出现的原因(如果您查看此问题的来源,您会发现我需要将 \ 翻两番)。

其他常见的转义序列是 \n 换行符和 \t 制表符。

于 2012-11-01T00:27:27.930 回答