2

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

我正在这样做

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;
4

3 回答 3

2

如果希望测试一个字符串以查看它是否具有至少一个数字和至少一个任意顺序的大写字母以及是否允许任何其他字符,那么这将起作用:

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

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

于 2012-04-04T02:49:44.923 回答
2

自从我这样做以来已经有一段时间了,我相当肯定有比这更有效的方法。您将需要使用积极的前瞻,但应该有一种方法可以从其中删除通配符:

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

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

于 2012-04-04T03:02:18.177 回答
0

如下所示:

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

测试字符串是否匹配:

var str = "abc32dQef";
var is_matched = /(\d.*[A-Z])|([A-Z].*\d)/.test(str);
于 2012-04-04T02:37:18.080 回答