gpt4 book ai didi

javascript - 如何使这个正则表达式 safari/iOS 兼容?

转载 作者:行者123 更新时间:2023-11-30 13:57:37 26 4
gpt4 key购买 nike

我正在使用此正则表达式来验证我的应用程序的用户名。 3-20 个字符、字母数字和下划线。不以下划线开头或结尾,并且没有两个连续的下划线。

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

但是在 iOS/safari 上失败并出现此错误:

SyntaxError: Invalid regular expression: invalid group specifier name

我怎样才能让这个正则表达式在所有主流浏览器中工作?

最佳答案

你可以在最后省略负向后瞻,但也可以省略其他 2 个负向前瞻 (?![_])(?!.*[_]{2}) 并且只使用开始的那个检查长度 3 - 20。

您可以匹配 1 次以上 [a-zA-Z0-9] 而不是 2 次否定前瞻,这样字符串就不能以下划线开头。

然后使用重复模式来匹配单个 _ 然后再匹配 1 次以上 [a-zA-Z0-9] 这样字符串就不会以下划线。

^(?=.{3,20}$)[a-zA-Z0-9]+(?:_[a-zA-Z0-9]+)+$

参见 Regex demo

关于javascript - 如何使这个正则表达式 safari/iOS 兼容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56926806/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com