Javascript:验证大小写

javascript : validate upper case and lower case

本文关键字:大小写 验证 Javascript      更新时间:2023-09-26

在检查大小写时是否有选项验证最小2小写2大写 ?下面是我使用的条件。

function HasMixedCase(passwd){
    if(passwd.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/))
        return true;
    else
        return false;
}

演示:http://jsfiddle.net/Ku4mg/

根据plalx的评论编辑:

var m;
if( !(m = passwd.match(/[a-z]/g)) || m.length < 2) return false;
if( !(m = passwd.match(/[A-Z]/g)) || m.length < 2) return false;
return true;

试图在单个regex中做太多事情会导致灾难,最常见的结果是灾难性的回溯。

同样,一次只做一件事会使你的代码更具可读性。

虽然@NietTheDarkAbsol的回答显示了一种完全有效的方式,但我建议您避免在函数中做太多事情。不要害怕将逻辑分割成多个可维护的函数。

function textCaseStats(text) {
    return {
        upper: (text.match(/[a-z]/g) || []).length,
        lower: (text.match(/[A-Z]/g) || []).length
    };
}
function hasMixedCase(password) {
    var caseStats = textCaseStats(password);
    return caseStats.lower >= 2 && caseStats.upper >= 2;
}