校驗密碼的時候如何校驗6-16位字母或數字呢,正則表達式就派上用場了
function isNumberOr_Letter(s){
var regu = "^[0-9a-zA-Z]{6,16}$"
var re = new RegExp(regu)
if (re.test(s)) {
return true;
}else{
return false;
}
}
但是測試的時候發現了一個bug,當值爲純數字或純字母時,也可以通過,但是我們的需求是不能通過,所以這個正則不符合要求這個正確的正則應該是:
^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$
function isNumberOr_Letter(s){
var regu = " ^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$"
var re = new RegExp(regu)
if (re.test(s)) {
return true;
}else{
return false;
}
}
if(!isNumberOr_Letter(that.editData.staffNum)){
that.$message.error('密碼格式錯誤');
return
}