糟糕的擒纵机构JSHint

时间:2012-11-01 00:25:05

标签: javascript jshint

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

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

2 个答案:

答案 0 :(得分:6)

只需双击\

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

即使我猜你要将这个字符串用于Regex对象,但字符串中的字符必须正确转义。默认情况下,\尝试转义下一个字符。如果您添加一个额外的\\,它会转义原始\并在最终字符串中计算为单个\

答案 1 :(得分:4)

\?不是有效的转义字符。尝试用\\。

替换它

所以看起来像:

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

请记住,“\”会转义后面的字符。这就是为什么\\作为一个斜线出现的原因(如果你看一下这个问题的来源,你会发现我需要将它翻两番。)

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