验证密码字段是否包含特殊字符

时间:2014-10-09 10:41:35

标签: jquery jquery-validate

此代码检查输入的密码是否包含最小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>")
});

1 个答案:

答案 0 :(得分:1)

要检查字符串是否包含特定字符,可以使用正则表达式。 通过使用regExp,您还可以选择接受哪些特殊字符。
您可以将正则表达式调整为变量

var regExp = /[*listofyourspecialcharacters*]/;

或您可以直接使用

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

测试方法搜索作为参数给出的字符串,如果正则表达式匹配,则返回true,即,如果找到特殊字符,则返回false。
因此,当您点击确认按钮或输入字段的值发生变化时,您可以轻松检查用户输入。

e.g:

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

编辑:reg exp中的打开和关闭括号(&#39; [&#39;,&#39;]&#39;)不是检查字符串的字符的一部分。它们只保存您要使用的字符列表。如果要使用它们,则需要使用转义符号:

var regExp = /[;:_\-!@\"\]\[]/;