2 回答
TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超4個(gè)贊
不要為此使用單個(gè)正則表達(dá)式,這太復(fù)雜了,因?yàn)槟仨殞懗?4 個(gè)選項(xiàng)的每個(gè)可能的 3 組合,并在每個(gè)組合之間交替使用|. 將每個(gè)測(cè)試拆分為一個(gè)正則表達(dá)式,然后以編程方式檢查有多少測(cè)試通過(guò):
const test = (str) => {
const hasUpper = /[A-Z]/.test(str);
const hasLower = /[a-z]/.test(str);
const hasNumbers = /\d/.test(str);
const hasSpecial = /[._~!@#$^&*]/.test(str);
if (hasUpper + hasLower + hasNumbers + hasSpecial < 3) {
return false;
}
if (str.toLowerCase().includes('administrator')) {
return false;
}
return str.length >= 8 && str.length <= 30;
};
如果您還想確保字符串中不存在除描述之外的字符,那么:
const hasOther = /[^a-z\d._~!@#$^&*]/i.test(str);
if (hasOther) {
return false;
}
TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超11個(gè)贊
let reg =/^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W_!@#$%^&*`~()-+=]+$)(?![a-z0-9]+$)(?![a-z\W_!@#$%^&*`~()-+=]+$)(?![0-9\W_!@#$%^&*`~()-+=]+$)[a-zA-Z0-9\W_!@#$%^&*`~()-+=]{8,30}$/;
if(!reg.test(str) || str.toLowerCase().includes('administrator')){
return false;
}
添加回答
舉報(bào)
