Solución:
Gracias a la respuesta de redsquare agregué un método como este:
$.validator.addMethod(
"regex",
function(value, element, regexp) {
var re = new RegExp(regexp);
return this.optional(element) || re.test(value);
},
"Please check your input."
);
Ahora todo lo que necesita hacer para validar contra cualquier expresión regular es esto:
$("#Textbox").rules("add", { regex: "^[a-zA-Z'.\s]{1,40}$" })
Además, parece que hay un archivo llamado additional-methods.js
que contiene el método “patrón”, que puede ser un RegExp
cuando se crea utilizando el método sin comillas.
Editar
los pattern
La función es ahora la forma preferida de hacer esto, haciendo el ejemplo:
$("#Textbox").rules("add", { pattern: "^[a-zA-Z'.\s]{1,40}$" })
- https://cdnjs.com/libraries/jquery-validate
- https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.2/jquery.validate.min.js
- https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.2/additional-methods.min.js
Puedes usar addMethod ()
p.ej
$.validator.addMethod('postalCode', function (value) {
return /^((d{5}-d{4})|(d{5})|([A-Z]d[A-Z]sd[A-Z]d))$/.test(value);
}, 'Please enter a valid US or Canadian postal code.');
buen artículo aquí https://web.archive.org/web/20130609222116/http://www.randallmorey.com/blog/2008/mar/16/extending-jquery-form-validation-plugin/
Tuve algunos problemas para juntar todas las piezas para hacer un validador de expresiones regulares jQuery, pero lo hice funcionar … Aquí hay un ejemplo completo de trabajo. Utiliza el complemento ‘Validación’ que se puede encontrar en Complemento de validación de jQuery
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script src="http://YOURJQUERYPATH/js/jquery.js" type="text/javascript"></script>
<script src="http://YOURJQUERYPATH/js/jquery.validate.js" type="text/javascript"></script>
<script type="text/javascript">
$().ready(function() {
$.validator.addMethod("EMAIL", function(value, element) {
return this.optional(element) || /^[a-zA-Z0-9._-][email protected][a-zA-Z0-9-]+.[a-zA-Z.]{2,5}$/i.test(value);
}, "Email Address is invalid: Please enter a valid email address.");
$.validator.addMethod("PASSWORD",function(value,element){
return this.optional(element) || /^(?=.*d)(?=.*[a-z])(?=.*[A-Z]).{8,16}$/i.test(value);
},"Passwords are 8-16 characters with uppercase letters, lowercase letters and at least one number.");
$.validator.addMethod("SUBMIT",function(value,element){
return this.optional(element) || /[^ ]/i.test(value);
},"You did not click the submit button.");
// Validate signup form on keyup and submit
$("#LOGIN").validate({
rules: {
EMAIL: "required EMAIL",
PASSWORD: "required PASSWORD",
SUBMIT: "required SUBMIT",
},
});
});
</script>
</head>
<body>
<div>
<form name="LOGIN" method="post" action="/index/secure/authentication?action=login">
<h1>Log In</h1>
<div>
<label for="EMAIL">Email Address</label>
<input name="EMAIL" type="text" value="" tabindex="1" />
</div>
<div>
<label for="PASSWORD">Password</label>
<input name="PASSWORD" type="password" value="" tabindex="2" />
</div>
<div>
<input name="SUBMIT" type="submit" value="Submit" tabindex="3" />
</div>
</form>
</div>
</body>
</html>