字符串对象:判断用户名是否合法。 (1)不能包含空格,split() (2)长度8-16个字符 (3)必须包含数字(ASCII:48-57)、字母(ASCII:65-90,97-122)、符号(ASCII:33-38,!"#¥%&)至少2种
const checkValid = str => {
let invalidMsg = ''
const regNoSpace = /\s/g
const regLength = /.{8, 16}/g
const regCharCode = /[0-9a-zA-Z!"#¥%&]/g
if (regNoSpace.test(str)) {
invalidMsg = '不能包含空格'
}
if (!regLength.test(str)) {
invalidMsg = '长度8-16个字符'
}
if ([...str].reduce((p, c) => p += regCharCode .test(c) ? 1 : 0, 0) < 2) {
invalidMsg = '必须包含数字(ASCII:48-57)、字母(ASCII:65-90,97-122)、符号(ASCII:33-38,!"#¥%&)至少2种'
}
return invalidMsg
}
用正则吧