正则表达式排除长串数字

时间:2018-05-30 18:43:14

标签: regex parsley.js

我正在使用以下内容作为我在结帐表单中对字段进行验证的一部分。

^[a-zA-Z0-9)(,'-/\\&.#? ]*$

我们遇到了一些客户错误地在这些字段中添加cc号码的问题,我们希望排除连续12个以上的任何数字字符串以希望缓解这个问题。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:1)

您可以使用否定lookahead断言一行中没有12位或更多位数:

^(?!.*[0-9]{12,})[a-zA-Z0-9)(,'-/\&.#? ]*$

b1表示:

  • @import url('https://fonts.googleapis.com/css?family=Roboto'); font-family: 'Roboto', sans-serif; 开始否定前瞻
    • (?!.*[0-9]{12,})匹配任何字符零次或多次
    • (?!匹配一个数字12次或以上(如果您想匹配12位数字,可以使用.*
  • [0-9]{12,}关闭否定前瞻

答案 1 :(得分:0)

这将匹配不包含12个字符的字符串:

^(?!.*\b[a-zA-Z0-9)(,'\-\/\\&.#? ]{12}\b.*).*$

Sample online regex.注意我使用了问题中提供的括号表达式但转义了短划线-并斜线/。还要使用量词{12}