2012-12-09 33 views
7

Cần thêm kiểm tra regex vào tập lệnh jquery.validate của tôi.thêm regex vào jquery.validate

Tôi có điều này:

$().ready(function() { 
    $("#myBlahForm").validate({ 

    rules: { 
     someName: { 
      required: true, 
      minlength: 5, 
      maxlength: 8, 
     }, 
     somePassword: { 
      required: true, 
          minlength: 5, 
      maxlength: 8, 
     }, 
     someConfirmPassword: { 
      required: true, 
      equalTo: "#somePassword" 
     }, 
    }, 
    messages: { 
     someName: { 
      required: "Please create your username", 
     }, 
     somePassword: { 
      required: "Please create a password", 
     }, 
     someConfirmPassword: { 
      required: "Please re-enter your password", 
      equalTo: "Passwords must match" 
     }, 
    } 
}); 

});

Và tôi muốn kiểm tra cho các ký tự cụ thể được phép vào DB cho các mật khẩu khi người dùng nhập dữ liệu của họ ở đây:

<label for="someName">Username</label> 
    <input type="text" id="someName" name="someName" placeholder="Create a Username"/> 

    <label for="somePassword">Password</label> 
    <input type="password" id="somePassword" name="somePassword" placeholder="Create a Password"/> 

    <label for="someConfirmPassword">Confirm Password </label> 
    <input type="password" id="someConfirmPassword" name="someConfirmPassword" placeholder="Verify your Password"/> 

gì là cách tốt nhất để thêm một tấm séc regex để một trường bắt buộc như vậy dưới dạng mật khẩu hoặc tên người dùng bằng cách sử dụng jquery.validate plugin từ bassisstance: http://docs.jquery.com/Plugins/Validation

Về cơ bản, tôi cần đảm bảo rằng mật khẩu và tên người dùng mà họ tạo chỉ có 0-9, chữ cái và một vài ký tự đặc biệt.

+1

thể trùng lặp của [jQuery xác nhận: Làm thế nào để thêm một quy tắc để xác nhận biểu hiện thường xuyên] (http://stackoverflow.com/questions/280759/jquery-validate-how-to-add-a-rule-for-regular-expression-validation) – ABMagil

Trả lời

26

tốt, bạn có thể thêm phương thức xác nhận tùy chỉnh bằng cách sử dụng addMethod, như

$.validator.addMethod("regx", function(value, element, regexpr) {   
    return regexpr.test(value); 
}, "Please enter a valid pasword."); 

Và,

... 
$("#myBlahForm").validate({ 

    rules: { 
     somePassword: { 
      required: true , 
      //change regexp to suit your needs 
      regx: /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])\w{6,}$/, 
      minlength: 5, 
      maxlength: 8 
     } 
    } 
3
required: function(element){ 
    return /[a-zA-Z0-9]/.test($('#someConfirmPassword').val()); 
} 

Biểu thức trên sẽ trả về true nếu regexp vượt qua, false nếu không. Thay đổi nó để phù hợp với nhu cầu của bạn.

+0

Cảm ơn bạn rất nhiều !! ;-) – mzalazar