如何以无特定顺序编写正则表达式?

时间:2013-09-09 13:33:48

标签: javascript regex

我必须对字符串进行javascript检查。 字符串必须有6个字母和2个数字,但不一定按顺序排列,也可以是2个数字和6个字母。

当时我有:

/^[A-Za-z]{6,}[0-9]{2,}$/;

非常感谢!

5 个答案:

答案 0 :(得分:4)

^(?=(.*[0-9]){2})(?=(.*[A-Za-z]){6})[A-Za-z0-9]{8}$

答案 1 :(得分:1)

使用|管道为正则表达式提供两种选择:

/^[a-z]{6}\d\d$|^\d\d[a-z]{6}$/i

答案 2 :(得分:1)

假设您的问题是如何检查至少包含2位数字和6个字母的混合字母和数字,我个人会这样做:

var str = "abc12def";
var digits = str.match(/\d/g).length;
var ok = /^[A-Za-z0-9]{8,}$/.test(str)
         && digits >=2 && str.length-digits>=6;

答案 3 :(得分:0)

以下是我认为的答案,花了一些时间让我发帖。

/^[a-zA-Z]{6}[\d]{2}|[\d]{2}[a-zA-Z]{6}$

干杯!!!

答案 4 :(得分:-1)

/^([a-z]{6}|[0-9]{2})([a-z]{6}|[0-9]{2})$/i

您可以在此处尝试:http://rubular.com/r/pmYxoX6qwD