1

What would be the best way to check that a javascript string is at least four characters long, contains at least one lowercase letter, one uppercase letter and a digit?

4

3 回答 3

1

这是一个快速验证功能:

function validate(str) {
    return str.length > 3 && /[a-z]/.test(str) && /[A-Z]/.test(str) && /[0-9]/.test(str) ;
}

它检查长度,然后运行正则表达式以查找小写、大写和数字(按此顺序)。如果全部为真(长度 > 3and有小写字母and有大写字母and有数字),则返回true. 否则,它返回false.

像这样使用它:

validate("aaaa")  // returns false
validate("aA1")   // returns false
validate("aA12")  // returns true
于 2013-04-18T11:17:51.740 回答
1

小写字母的测试已经在其他地方介绍过

function hasLowerCase(str) {
    return (/[a-z]/.test(str));
}

修改它以实现hasUpperCasehasDigits.

编写完这些函数后,您只需检查一下:

if( hasLowerCase(passwd) && hasUpperCase(passwd) && hasDigits(passwd) ) {
    // Its a valid password!
}

如果您在很多地方使用它,请考虑制作一个新功能:

function isPasswordValid(str) {
    return hasLowerCase(passwd) && hasUpperCase(passwd) && hasDigits(passwd);
}

您可以进一步使用,例如:

if( isPasswordValid("passwd") ) {
    // ...
}
于 2013-04-18T11:16:27.327 回答
0

我写了一个函数,就像ColBeseder.add 一个类型检查一样string

function check( str ){

    return ( typeof str == 'string') &&
           ( str.length >= 4 ) &&
           /[a-z]/.test( str ) &&
           /[A-Z]/.test( str ) && 
           /[0-9]/.test( str )

}

并调用它 as check('AAA1a'),它返回一个布尔值

于 2013-04-18T11:26:05.593 回答