javascript - 正则表达式以任何顺序匹配至少 7 位数字和任意数量的特殊字符的模式

标签 javascript html regex

我需要一个正则表达式模式,该模式将以任何顺序匹配至少 7 位数字最多 40 位和 0 个或更多这些字符 ()+-*# 的模式。

到目前为止我有这个:^[(?=.*\d)(?=.*[+\-*()#\]*)]{7,40}$但它并不满足所有要求。

一些测试:

1234//false 需要 7 位数字

1234563//真 7 位数字和 0 个特殊字符

(66)666-666//true 7 digits and 0 or more special

(3)3-33//小于 7 位的 false

123456789009876543211234567890098765432112345//false 超过 40 位

()-+*#34345789//真正的 7 位数字和 0 个或更多特殊字符

)(*&^%$£@7655432//错误的 7 位数字但特殊字符不在列表中

如有任何帮助,我们将不胜感激。

最佳答案

你可以使用

^[()+*#-]*(?:\d[()+*#-]*){7,40}$

参见 regex demo

详细信息:

  • ^ - start of string
  • [()+*#-]* - list 中的 0 个或多个特殊字符
  • (?:\d[()+*#-]*){7,40} - 数字出现 7 到 40 次,后跟列表中的 0 个或多个特殊字符<
  • $ - end of string .

如果您在 pattern 属性中使用它,您可以删除 ^$,因为它们是由 HTML5 引擎自动添加的。

关于javascript - 正则表达式以任何顺序匹配至少 7 位数字和任意数量的特殊字符的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51820874/

相关文章:

javascript - 在javascript中更改数组位置

javascript - 全屏背景视频并保持居中

html - 垂直对齐不起作用按钮

regex - 前面的token是不可量化的

java正则表达式,匹配数学运算符

regex - 只匹配一定范围内的数字

javascript - 在 JavaScript 中使用 $1 作为变量

javascript - 如何知道哪个元素被点击

javascript - 包含前后空格的三个字母和两个数字的 RegEx 字符串

Javascript 打字机片段使浏览器没有响应