js校驗6-16位字母或數字,當不能是純數字或純字母時如何解決

校驗密碼的時候如何校驗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
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章