【问题标题】:Regex: Invalid group specifier name - react native正则表达式:无效的组说明符名称 - 反应原生
【发布时间】:2020-09-17 03:18:59
【问题描述】:

我的正则表达式在浏览器中工作,但在 react-native expo app (android) 开发中显示错误

正则表达式:

/^(?=.{0,20}$)(?![_.0-9])(?!.*[_.]{2})[a-zA-Z0-9._]+(?<![_.])$/

错误:

Invalid regular expression: invalid group specifier name
no stack

如何解决这个错误,谢谢

【问题讨论】:

  • 删除(?&lt;![_.])。在^ 之后添加(?!.*[_.]$)。或者,/^(?!.*[_.]$)(?![_.0-9])(?!.*[_.]{2})[a-zA-Z0-9._]{0,20}$/
  • 终于成功了吗,还是需要更多帮助?

标签: javascript regex reactjs react-native expo


【解决方案1】:

我建议将(?&lt;![_.])lookbehind 转换为(?!.*[_.]$)lookahead 并稍微收紧(因为可以使用消费模式部分检查长度):

/^(?!.*[_.]$)(?![_.0-9])(?!.*[_.]{2})[a-zA-Z0-9._]{0,20}$/

详情

  • ^ - 字符串开头
  • (?!.*[_.]$) - 最后不允许使用 ._
  • (?![_.0-9]) - 不允许 _. 和开头允许的数字
  • (?!.*[_.]{2}) - 任何地方都不允许有连续的 ._
  • [a-zA-Z0-9._]{0,20} - 0 到 20 个字母、数字、._
  • $ - 字符串结束。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-04
    • 2021-01-30
    • 1970-01-01
    • 2021-12-04
    • 2012-10-18
    • 2019-11-30
    相关资源
    最近更新 更多