Javascript - 正则表达式用于两个大写,小写和数字

时间:2014-07-01 12:37:32

标签: javascript regex

我是正则表达的新手。

我写了一个大写,小写,10个字符(分钟)和一个数字。

/^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])\S{10,}$/g

这样可以正确验证。

我想知道我是否可以检查至少两个大写字母,两个小写字母和两个数字?

我试过了:

/^(?=.*[A-Z]{2,})(?=.*[a-z]{2,})(?=.*[0-9]{2,})\S{10,}$/g

干杯

1 个答案:

答案 0 :(得分:1)

是的,这很简单,您只需重复两次前瞻整个内容(使用非捕获组)

/^(?=(?:.*[A-Z]){2})(?=(?:.*[a-z]){2})(?=(?:.*[0-9]){2})\S{10,}$/

您可以使用否定字符类来改进模式:

/^(?=(?:[^A-Z]*[A-Z]){2})(?=(?:[^a-z]*[a-z]){2})(?=(?:[^0-9]*[0-9]){2})\S{10,}$/

注意:由于您使用在开头和结尾处锚定的单个模式测试所有字符串,因此您无需为全局研究添加“g”。