【问题标题】:Why isn't this a valid regular expression?为什么这不是一个有效的正则表达式?
【发布时间】:2016-09-21 23:58:10
【问题描述】:

这只是一天前的工作,但现在抛出异常。我已将正则表达式粘贴到在线验证器中,看起来不错?

我错过了什么?

<input type="text" class="form-control" name="nickname" id="nickname" value="Alicia"
       pattern="[\w\s\-\(\)\!\,\.]{3,45}">

模式属性值[\w\s\-\(\)\!\,\.]{3,45} 不是有效的正则表达式:未捕获的语法错误:无效的正则表达式:/[\w\s\-\(\)\!\,\.]{3,45}/:无效的转义

感谢您的帮助!

凯西

【问题讨论】:

    标签: javascript regex html


    【解决方案1】:

    虽然 Chrome 确实在抱怨,但对我来说似乎是有效的。

    在任何情况下,您都不需要转义字符类中的所有这些字符。你应该可以使用

    pattern="[\w\s()!,.-]{3,45}"
    

    这对我来说似乎没问题。

    【讨论】:

    • 我在使用一个非常简单的有效正则表达式时遇到了同样的问题(已成功使用多年),最新版本的 Chrome 给了我与 OP 相同的错误,并弹出“请匹配请求的格式”,这破坏了我的登录页面。
    • 我们的注册页面在 Chrome 上出现错误“Invalid Escape”而在 Firefox 中出现“模式不是有效的正则表达式:正则表达式中的无效身份转义”错误,尽管该正则表达式已经工作了几个月。字符类中有一个转义的单引号 \',这导致了问题。
    猜你喜欢
    • 1970-01-01
    • 2018-10-10
    • 1970-01-01
    • 2012-01-26
    • 1970-01-01
    • 2019-06-09
    • 2012-04-27
    • 1970-01-01
    相关资源
    最近更新 更多