【问题标题】:How to fix this regex to remove JSLint Unnecessary escape warning?如何修复此正则表达式以删除 JSLint 不必要的转义警告?
【发布时间】:2018-11-25 23:24:11
【问题描述】:

我得到一个 url,然后使用这样的正则表达式在 React 中使用 onClick 处理程序剥离域:

const path = e.target.closest('a');
if (!path) return;
e.preventDefault();

console.log('path: ', path.href.replace(/^.*\/\/[^\/]+/, ''));

因此,如果 url 是 http://example.com/my-super-funky-page,它会正确地 console.log http://example.com 之后的所有内容 - 例如:

/my-super-funky-page

但我似乎对包含无用转义的 regEx 有疑问。 JS Lint 报告:

Unnecessary escape character: \/  no-useless-escape

我需要删除什么才能使其按预期工作。我尝试了一些东西,结果破坏了。

【问题讨论】:

    标签: javascript regex reactjs jslint


    【解决方案1】:
    /^.*\/\/[^/]+/
    

    字符类中的/ 不需要转义

    【讨论】:

      【解决方案2】:

      如果您不想收到有关不必要转义的通知,您可以安全地禁用此规则。

      这将起作用: ^.*\/\/[^/]+

      在大多数正则表达式风格中,唯一的特殊字符或元字符 在字符类中是右括号 ]、反斜杠 \、 插入符号 ^ 和连字符 -。通常的元字符是正常的 字符类中的字符,不需要转义 一个反斜杠。要搜索星号或加号,请使用 [+*]。您的正则表达式将 如果您转义字符内的常规元字符,则工作正常 类,但这样做会大大降低可读性。

      Source

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-10-25
        • 1970-01-01
        • 2011-02-28
        • 1970-01-01
        • 2017-06-19
        • 2015-05-08
        • 2014-12-31
        • 1970-01-01
        相关资源
        最近更新 更多