JavaScript正则表达式:为什么会导致双反斜杠(\\)错误?
我是偶然发现的,不知道是什么原因JavaScript正则表达式:为什么会导致双反斜杠(\\)错误?,javascript,regex,Javascript,Regex,我是偶然发现的,不知道是什么原因 // Results in "Syntax error in regular Expression". var re = RegExp('\\'); 我知道构造函数需要一个字符串作为参数。反斜杠在字符串中用于转义具有特殊含义的字符。我知道我必须转义\d到\\d这样的字符 因此:右反斜杠应该解释为一些普通字符 相反,它会抛出一个错误。为什么? 有人能给我解释一下吗?字符串文字“\\”创建的字符串只包含一个反斜杠字符,因为在字符串文字中反斜杠是转义字符 单个反斜杠
// Results in "Syntax error in regular Expression".
var re = RegExp('\\');
我知道构造函数需要一个字符串作为参数。反斜杠在字符串中用于转义具有特殊含义的字符。我知道我必须转义\d到\\d这样的字符
因此:右反斜杠应该解释为一些普通字符
相反,它会抛出一个错误。为什么?
有人能给我解释一下吗?字符串文字“\\”创建的字符串只包含一个反斜杠字符,因为在字符串文字中反斜杠是转义字符
单个反斜杠字符不是有效的正则表达式
如果希望正则表达式与单个反斜杠匹配,则需要在正则表达式中转义,因此需要执行以下任一操作:
re = /\\/;
// or
re = new RegExp('\\\\');
字符串文字“\\”创建的字符串只包含一个反斜杠字符,因为在字符串文字中反斜杠是转义字符
单个反斜杠字符不是有效的正则表达式
如果希望正则表达式与单个反斜杠匹配,则需要在正则表达式中转义,因此需要执行以下任一操作:
re = /\\/;
// or
re = new RegExp('\\\\');
我相信您出现此错误的原因是您输入到JavaScript引擎的有效正则表达式是一个反斜杠\
这是因为第一个反斜杠逃避了第二个反斜杠。因此,您输入了一个文字反斜杠,这没有任何意义。我相信您出现此错误的原因是,您输入到JavaScript引擎的有效正则表达式是一个反斜杠\ 这是因为第一个反斜杠逃避了第二个反斜杠。因此,您需要输入一个没有任何意义的反斜杠。\用于在字符串中转义,\n因此要在编写时获得\d,您需要执行\\d 在regexp中,还需要使用\\转义\ 因此,您需要在regexp中使用两个转义语法,在regexp中使用单个\\将意味着\这是不正确的,因为它需要转义 因此,要解决这个问题,您需要双转义:\\\\-这将是一个查找\的正则表达式。\用于在字符串中转义\,因此要按您编写的方式获取\d,您需要执行\\d 在regexp中,还需要使用\\转义\ 因此,您需要在regexp中使用两个转义语法,在regexp中使用单个\\将意味着\这是不正确的,因为它需要转义
因此,要解决这个问题,您需要双转义:\\\\-这将是一个正则表达式查找\。反斜杠\是正则表达式的转义字符。因此,双反斜杠实际上意味着单反斜杠。\反斜杠后跟任何[\^$.?*+{}转义特殊字符以抑制其特殊含义。反斜杠\是正则表达式的转义字符。因此,双反斜杠实际上意味着单个文字反斜杠。\n反斜杠后跟任何[\^$.?*+{}转义特殊字符以抑制其特殊含义。因为/\/是无效的正则表达式。如果希望正则表达式与单个反斜杠匹配,则需要/\\/或新的正则表达式“\\\\”,因为/\/是无效的正则表达式。如果希望正则表达式与单个反斜杠匹配,则需要/\\/或新的正则表达式“\\\\\”right.var test1='\';反斜杠转义第二个撇号。因此字符串没有结束符号并且无效。类似的内容不可能存在。除了反斜杠之外,最短的字符串可能是var test2='\\'。因此,RegExp搜索test1没有意义。感谢帮助。您给出了正确的答案input.You's right.var test1='\';反斜杠转义第二个撇号。因此字符串没有结束符号并且无效。类似的东西不可能存在。除了反斜杠之外,最短的字符串可能是var test2='\\'。因此,RegExp搜索test1没有意义。感谢您的帮助。您给出了正确的输入。