javascript正则表达式,用于至少一个数字和一个大写字母

时间:2012-04-04 02:31:51

标签: javascript jquery regex

检查给定字符串是否包含至少一个数字和一个大写字母的正则表达式是什么? 提前致谢

我这样做

function validate_pass{
var var_password = document.getElementById("npassword").value;
else if (!(/^(?=.*\d)(?=.*[A-Z]).+$/).test(var_password))){
    msg = "Password should contain atleast.";

    showErrorMsgPassword(msg);
    $('#npassword').val('');
    $('#cpassword').val('');
    return false;
  }

else return true;

3 个答案:

答案 0 :(得分:2)

如果希望测试一个字符串,看它是否至少有一个数字,并且任何顺序中至少有一个大写字母,并且允许任何其他字符,那么这将有效:

var str = "abc32Qdef";
var re = /[A-Z].*\d|\d.*[A-Z]/;
var good = re.test(str);​

在这里使用一堆测试用例进行演示:http://jsfiddle.net/jfriend00/gYEmC/

答案 1 :(得分:1)

我已经做了一段时间了,我相当确定有一种比这更有效的方法。您将需要使用正向前瞻,但应该有一种方法从其中删除通配符:

如果符合条件,此正则表达式(/^(?=.*[A-Z])(?=.*\d).*$/)将返回整个密码。

('a3sdasFf').match(/^(?=.*[A-Z])(?=.*\d).*$/);

答案 2 :(得分:0)

如下所示:

/(\d.*[A-Z])|([A-Z].*\d)/

测试匹配的字符串是否匹配:

var str = "abc32dQef";
var is_matched = /(\d.*[A-Z])|([A-Z].*\d)/.test(str);