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?
问问题
126 次
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));
}
修改它以实现hasUpperCase
和hasDigits
.
编写完这些函数后,您只需检查一下:
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 回答