Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript正则表达式:为什么会导致双反斜杠(\\)错误?_Javascript_Regex - Fatal编程技术网

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没有意义。感谢您的帮助。您给出了正确的输入。