2014-10-09 65 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]\"\]\[]/;