正则表达式以验证带有数字和字母的字符串

时间:2019-02-15 14:39:47

标签: regex

我需要帮助来创建一个正则表达式来验证一个字符串,该字符串必须是12个字符,它们都可以是数字,也可以是11个数字和一个字母,字母可以在这些数字之间的任意位置。

一些例子:

20710117540C

00A109822346

005109822346

K05109822346

//错误情况

KY0510982234

KY05109822345

5505109822345

谢谢!

1 个答案:

答案 0 :(得分:3)

您可以使用此正则表达式来满足您的要求,

^(?:\d{12}|(?=\d*[a-zA-Z]\d*$)[\da-zA-Z]{12})$

说明:

  • ^-字符串的开头
  • (?:-非分组模式的开始
  • \d{12}-精确匹配12位数字
  • |-替换另一种情况,其中11个字符可以是任意数字和一个字母
  • (?=\d*[a-zA-Z]\d*$)-请确保输入的数据由一些数字和一个字母组成。
  • [\da-zA-Z]{12}-包含由数字和字母组成的12个字符
  • )$-非捕获组的结尾和输入的结尾

Demo1

您可以使用的另一个简单的正则表达式是

^(?=\d*[a-zA-Z]?\d*$)[\da-zA-Z]{12}$

说明:

  • ^-字符串的开头
  • (?=\d*[a-zA-Z]?\d*$)-请确保输入中包含一些数字,并且可以包含一个字母或不包含字母。
  • [\da-zA-Z]{12}-匹配并完全使用12个字符
  • $-输入结束。

Demo2