gpt4 book ai didi

html - 正则表达式 : checking if string has 1 to 6 digits, 和恰好 4 个特殊字符

转载 作者:行者123 更新时间:2023-11-28 00:35:01 24 4
gpt4 key购买 nike

我正在尝试使用正则表达式验证一个字符串,该字符串必须有 1 到 6 个数字,并且正好有 4 个特殊字符(我所说的特殊字符是指像 $!^)("' 这样的字符。非英语/拉丁字符可以解释为字母数字,在这种情况下并不重要。

我在 HTML 输入的模式属性中使用这个正则表达式。

示例:12?74@"=5 应该是一个有效的字符串。

我已经试过了:

([1-9]{1,6})([@"?']{4})

但它没有按预期工作,当字符混合时我无法验证字符串,例如:1254@@@@ 可以,但 12@@'?44 无效。

有人可以帮我解决这个问题吗?我是正则表达式的新手,需要一些帮助。谢谢!

最佳答案

你可以使用

pattern="(?=(?:[^0-9]*[0-9]){1,6}[^0-9]*$)(?=(?:[A-Za-z0-9]*[^A-Za-z0-9]){4}[A-Za-z0-9]*$).*"

参见 regex demo

请注意,HTML5 正则表达式自动用 ^(?:)$ 包装,因此生成的模式看起来像

/^(?:(?=(?:[^0-9]*[0-9]){1,6}[^0-9]*$)(?=(?:[A-Za-z0-9]*[^A-Za-z0-9]){4}[A-Za-z0-9]*$).*)$/

详情

  • ^ - 字符串的开始
  • (?=(?:[^0-9]*[0-9]){1,6}[^0-9]*$) - 1 到 6 位数字用字符串中允许的任意数量的非数字
  • (?=(?:[A-Za-z0-9]*[^A-Za-z0-9]){4}[A-Za-z0-9]*$) - 除 ASCII 字母或数字外,恰好 4 个字符与字符串中允许的任意数量的 ASCII 字母或数字分隔
  • .* - 尽可能多的除换行符以外的任何 0+ 个字符
  • $ - 字符串结尾。

关于html - 正则表达式 : checking if string has 1 to 6 digits, 和恰好 4 个特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56803186/

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