是否有人知道为什么我使用以下代码在JSHint上出现Bad escapement
错误?
var regexS = '[\?&]' + name + '=([^&#]*)';
答案 0 :(得分:6)
只需双击\
var regexS = '[\\?&]' + name + '=([^&#]*)';
即使我猜你要将这个字符串用于Regex
对象,但字符串中的字符必须正确转义。默认情况下,\
尝试转义下一个字符。如果您添加一个额外的\\
,它会转义原始\
并在最终字符串中计算为单个\
。
答案 1 :(得分:4)
\?不是有效的转义字符。尝试用\\。
替换它所以看起来像:
var regexS = '[\\?&]' + name + '=([^&#]*)';
请记住,“\”会转义后面的字符。这就是为什么\\作为一个斜线出现的原因(如果你看一下这个问题的来源,你会发现我需要将它翻两番。)
其他常见的转义序列是\ n用于换行符,\ t用于制表符。