2017-06-19 49 views
1

我有這個JavaScript的使用setcustomvalidity,但是隻有一個條件不工作:setCustomValidity不工作

$("#newPass").on('invalid',function(){ 
     var tmp = $('#newPass').val(); 
     var regex = /^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]/; 
     if(tmp == ""){ 
      $('#newPass')[0].setCustomValidity('new password is empty'); 
     }else if(regex.test(tmp)){ 
      $('#newPass')[0].setCustomValidity('password must be combination of letter and number'); 
     }else if(tmp.length < 6){ 
      $('#newPass')[0].setCustomValidity('Password shoult at least 6'); 
     }else{ 
      $('#newPass')[0].setCustomValidity('please check your password'); 
     } 
     }); 

regex.test不工作,有什麼解決辦法嗎?也許正則表達式是錯誤的?

回答

0

試着改變你的regex變量值的:

var regex = /^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+)$/; 

如果你用它測試,它將返回true如果字符串至少1個字母和1個數字,否則false

+0

但我需要的正則表達式必須字符和數字,如「test123」之間的結合。所以如果通行證是全部數字或字符,則會顯示錯誤消息。 – rinaldy31