2014-10-09 61 views
0

此代碼檢查輸入的密碼是否包含最小8個字符。我想檢查密碼是否有特殊字符。如果沒有特殊字符,用戶必須提示輸入特殊字符和數字。 jQuery代碼是:驗證密碼字段是否包含特殊字符

jQuery(document).ready(function() { 
    jQuery("#changePasswordForm").validate({ 
     rules: { 
      oldPassword: { 
       required: true 
      }, 
      password: { 
       required: true, 
       minlength: 8 
      }, 
      password2: { 
       required: true, 
       equalTo: "#password1", minlength: 8 
      } 
     } 
    }); 
}); 
jQuery.extend(jQuery.validator.messages, { 
    required: "<span>This field is required.</span>", 
    equalTo: "<span>Please enter the same value again.</span>", 
    minlength: jQuery.validator.format("<span>Please enter at least {0} characters.</span>") 
}); 
+0

這可能幫助,本質上可以定義自己的規則:http://stackoverflow.com/questions/14949257/jquery-validate-方法檢查特殊字符 – 2014-10-09 10:45:15

+0

定義一個自定義方法,根據所需的規則檢查密碼的語法。參見'$ .validator.addMethod()'。這些限制特殊字符的 – Barmar 2014-10-09 10:51:30

+0

。我想要我的密碼中的特殊字符。所以它應該檢查它們是否存在。如果不是應該提示用戶輸入至少一個特殊字符和數字。 – 2014-10-09 10:54:03

回答

1

要檢查字符串中包含一定的字符,你可以使用正則表達式。 通過使用regExp,您還可以選擇接受哪些特殊字符。
您可以調整正則表達式到可變

var regExp = /[*listofyourspecialcharacters*]/; 

或可以直接使用它

/[*listofyourspecialcharacters*]/.test(*yourstring*); 

測試方法搜索作爲參數的字符串並返回真,如果正則表達式匹配,即當找到特殊字符時,如果不是,則返回false。
因此,只要他點擊確認按鈕或您輸入字段的值發生變化,您就可以輕鬆檢查您的用戶輸入。

例如爲:

$("#acceptButton").click(function(){ 
    var regExp = /[_\-!\"@;,.:]/; 
    if(!regExp.test($('#password1').val())){ 
     *askForNewPassword();* 
    } else { 
     *carry on()*; 
    } 
}; 

編輯:打開和關閉括號(「[」,「]」)在REG EXP不反對該字符串被選中字符的一部分。他們只是持有你想使用的字符列表。如果你想使用它們,你需要使用轉義符號:

var regExp = /[;:_\[email protected]\"\]\[]/;