regex 禁用不必要的转义符:\/无无用转义

bfhwhh0e  于 2022-12-14  发布在  其他
关注(0)|答案(8)|浏览(519)

我有一个正则表达式,它会检查字符串是否包含链接或url (i.e. https://eslint.org/docs/rules/no-useless-escape)。使用这个正则表达式/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig,我在运行关于Unnecessary escape character: \/ no-useless-escape的测试用例时遇到了一个错误。如何禁用这个eslint错误,以便我继续我的测试用例并使用正则表达式。
感谢您的帮助!

qv7cva1a

qv7cva1a1#

您可以使用ESLint并尝试添加以下内容之一:-

  1. //eslint-disable-line以停用警告。
  2. //eslint-disable-next-line到前一行以禁用警告。
    请参阅ESLint文档中的“禁用带有内联注解的规则”。
    要禁用特定行上的所有规则,请使用以下格式之一的行注解或块注解:
alert('foo'); // eslint-disable-line

// eslint-disable-next-line
alert('foo');

/* eslint-disable-next-line */
alert('foo');

alert('foo'); /* eslint-disable-line */

您可以通过在文件顶部添加/* eslint-disable */来禁用整个文件中的警告。
要禁用整个文件中的规则警告,请在文件顶部放置/* eslint-disable */块注解:

/* eslint-disable */
   alert('foo');
aiazj4mn

aiazj4mn2#

它是[-A-Z0-9+&@#\/%?=~_|!:,.;][-A-Z0-9+&@#\/%=~_|]中的\/(不是:\/\/中的\/)。在字符类中,大多数字符不必转义(方括号)。这应该是等效的:/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z0-9+&@#/%=~_|])/ig有关更多信息,请参见https://www.regular-expressions.info/charclass.html,但相关部分:
在大多数正则表达式风格中,字符类中唯一的特殊字符或元字符是右括号]、反斜杠、插入符号^和连字符-。通常的元字符是字符类中的普通字符,不需要用反斜杠转义。要搜索星星或加号,使用[+*]。2如果对字符类中的常规元字符进行转义,正则表达式将正常工作,但这样做会显著降低可读性。

5cnsuln7

5cnsuln73#

您也可以使用

/* eslint-disable no-useless-escape */

若要禁用整个脚本文件规则,请执行以下操作。

ie3xauqp

ie3xauqp4#

//eslint-disable-next-line

将其放在代码行上方

/*eslint no-undef: 0*/

将其放在文件的第一行(或script标记的第一行)这将使eslint在整个文件上禁用

zaq34kh6

zaq34kh65#

\在我的NodeJS typescript项目中给出了来自以下代码的错误,代码编辑器是VS代码-
代码-

if (!(/^[\-0-9a-zA-Z\.\+_]+@[\-0-9a-zA-Z\.\+_]+\.[a-zA-Z]{2,}$/).test(String(req.body.email))) { ... }

错误-

Unnecessary escape character: \+. (eslintno-useless-escape)

解决方案-

//eslint-disable-next-line

最终代码-

//eslint-disable-next-line
if (!(/^[\-0-9a-zA-Z\.\+_]+@[\-0-9a-zA-Z\.\+_]+\.[a-zA-Z]{2,}$/).test(String(req.body.email))) { ... }
f3temu5u

f3temu5u6#

我有下面的代码片段用于验证电子邮件地址:

/[a-zA-Z0-9\.]*@[a-z]*[\.a-z]*/.test(value)

由于方括号('[]')中的'.',linter显示错误。方括号不需要转义字符('')来使用'.'。我删除了'[]'中的''(如下所示),错误得到解决。

/[a-zA-Z0-9.]*@[a-z]*[.a-z]*/.test(value)
5gfr0r5j

5gfr0r5j7#

我只需要把

从我的regx和这里看它之前的样子

/^\w+\-/g;

之后

/^\w+-/g;
mznpcxlj

mznpcxlj8#

我也得到了类似的警告。
Unnecessary escape character: \# no-useless-escape
简单地删除警告中提到的任何内容。在我的例子中,我在警告中有\#,所以我只是将它从警告中提到的行中删除。

相关问题