我有我的这个正则表达式,如果它包含链接或网址(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-error以便我继续我的测试用例并使用正则表达式。
感谢任何帮助!
答案 0 :(得分:11)
\/
和[-A-Z0-9+&@#\/%?=~_|!:,.;]
中的[-A-Z0-9+&@#\/%=~_|]
(不是:\/\/
中的/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z0-9+&@#/%=~_|])/ig
)。大多数字符不必在字符类(方括号)内进行转义。这应该是等价的:G(a,b)
所以
有关详细信息,请参阅https://www.regular-expressions.info/charclass.html,但相关部分:
在大多数正则表达式中,唯一的特殊字符或元字符 在一个字符类里面是结束括号],反斜杠\, 插入符号^和连字符 - 。通常的元字符是正常的 字符类中的字符,不需要转义 反斜杠。要搜索星号或加号,请使用[+ *]。你的正则表达式会 如果您转义角色内的常规元字符,则可以正常工作 类,但这样做会大大降低可读性。
答案 1 :(得分:3)
//eslint-disable-next-line
将其放置在代码行上方
OR
/*eslint no-undef: 0*/
将其放置在文件的第一行(或script标签的第一行) 这将使eslint在整个文件上都被禁用
答案 2 :(得分:3)
你也可以使用
/* eslint-disable no-useless-escape */
禁用整个脚本文件的规则。
答案 3 :(得分:1)
您可以使用ESLint并尝试将此注释listA, listB, listC = [dedup(x) for x in [listA, listB, listC]]
添加到行中以禁用警告。
答案 4 :(得分:1)
\
在我的NodeJS typescript
项目中从下面的代码给出错误,代码编辑器是VS Code-
代码-
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))) { ... }
答案 5 :(得分:1)
我在 React 中也有类似的警告。
<块引用>Unnecessary escape character: \# no-useless-escape
只需删除警告中提到的任何内容。就我而言,警告中有 \#
,因此我只是将其从警告中提到的行中删除。