Javascript 数字正则表达式导致jshint';错误或不必要的逃逸';错误

Javascript 数字正则表达式导致jshint';错误或不必要的逃逸';错误,javascript,regex,jshint,Javascript,Regex,Jshint,我有一个非常非常简单的Regexp: new RegExp('\d') 。运行jshint可以提供: Bad or unnecessary escaping. 排队。我做错了什么 编辑:@epascarello如果这是重复的,请告诉我这是什么问题的重复 您需要再次转义\d new RegExp("\\d") \应该在带有“作为分隔符的正则表达式中转义。您需要再次转义\d new RegExp("\\d") \应该在以“作为分隔符的正则表达式中转义。您可以通过以下两种方式之一构造正则表达式

我有一个非常非常简单的Regexp:

new RegExp('\d')
。运行jshint可以提供:

Bad or unnecessary escaping.
排队。我做错了什么


编辑:@epascarello如果这是重复的,请告诉我这是什么问题的重复

您需要再次转义
\d

new RegExp("\\d")

\
应该在带有
作为分隔符的正则表达式中转义。

您需要再次转义
\d

new RegExp("\\d")


\
应该在以
作为分隔符的正则表达式中转义。

您可以通过以下两种方式之一构造正则表达式:使用正则表达式文本,如下所示:var re=/\d/;新RegExp(re);正则表达式文本在加载脚本时提供正则表达式的编译。当正则表达式保持不变时,使用此函数可获得更好的性能。调用RegExp对象的构造函数,如下所示:var re=new RegExp(“\\d”);新RegExp(re);使用构造函数可以提供正则表达式的运行时编译。当您知道正则表达式模式将要更改,或者您不知道该模式并从其他源(如用户输入)获取它时,请使用构造函数。阅读更多信息:@AmirPopovich有意义。我认为//d的字面意思是“斜杠d”,而不是“数字”,但我可以从您的MDN链接中看出它是正确的。问题顶部有一个指向副本的链接。这是jshint,即jslint,它是一个不同的软件,具有不同的错误消息。答案是一样的,但问题显然不同。您可以通过以下两种方式之一构造正则表达式:使用正则表达式文本,如下所示:var re=/\d/;新RegExp(re);正则表达式文本在加载脚本时提供正则表达式的编译。当正则表达式保持不变时,使用此函数可获得更好的性能。调用RegExp对象的构造函数,如下所示:var re=new RegExp(“\\d”);新RegExp(re);使用构造函数可以提供正则表达式的运行时编译。当您知道正则表达式模式将要更改,或者您不知道该模式并从其他源(如用户输入)获取它时,请使用构造函数。阅读更多信息:@AmirPopovich有意义。我认为//d的字面意思是“斜杠d”,而不是“数字”,但我可以从您的MDN链接中看出它是正确的。问题顶部有一个指向副本的链接。这是jshint,即jslint,它是一个不同的软件,具有不同的错误消息。答案是一样的,但问题显然不同。谢谢。为什么我要逃两次呢?这两个转义符都做什么?如果我们使用
/
作为分隔符,那么您可以使用正常的正则表达式。但是当正则表达式被括在
”中时,我们需要再次转义。同样在Java中,正则表达式被括在双引号中。当我们将正则表达式放入逐字字符串(即
@)中时,可以避免这种类型的转义“
,c#具有此功能。我知道我们在使用构造函数时需要再次转义。但是为什么呢?@mikemacana因为否则JS会认为你是在试图逃避引号而不是正则表达式符号<代码>变量测试='你好,怎么了?'谢谢。为什么我要逃两次呢?这两个转义符都做什么?如果我们使用
/
作为分隔符,那么您可以使用正常的正则表达式。但是当正则表达式被括在
”中时,我们需要再次转义。同样在Java中,正则表达式被括在双引号中。当我们将正则表达式放入逐字字符串(即
@)中时,可以避免这种类型的转义“
,c#具有此功能。我知道我们在使用构造函数时需要再次转义。但是为什么呢?@mikemacana因为否则JS会认为你是在试图逃避引号而不是正则表达式符号<代码>变量测试='你好,怎么了?'