En este proyecto tengo el siguiente código jquery para validar un formulario. Funciona bien, pero me gustaría que fuera más específico al implementar una validación más completa para las placas de registro del Reino Unido. Mi código javascript es:
function ValidateSspcpForm() { $('#SspcpForm').validate({ rules: { 'sspcp[reg]': { required: true, rangelength: [2, 8], }, messages: { 'sspcp[reg]': { required: "Your car's registration is required in advance, Please input one here.", rangelength: "The registration number must be between 2 and 7 characters in length" }, } }); }El método que quiero implementar es este, parece cubrir todo para las placas del Reino Unido, lo cual es perfecto para mi caso de uso:
(^[AZ]{2}[0-9]{2}\s?[AZ]{3}$)|(^[AZ][0-9]{1,3}[AZ]{3}$)|(^[AZ]{3}[0-9]{1,3}[AZ]$)|(^[0-9]{1,4}[AZ]{1,2}$)|(^[0-9]{1,3}[AZ]{1,3}$)|(^[AZ]{1,2}[0-9]{1,4}$)|(^[AZ]{1,3}[0-9]{1,3}$)¡Cualquier ayuda o idea sería muy apreciada!
Lo encontré. Definitivamente parece ser bastante simple. Soy nuevo en JavaScript, por lo que no sabía que lo dejaría fuera del método de validación. Para cualquier otra persona que busque, así es como implementaría la validación de placas de registro del Reino Unido con jquery.validate:
function ValidateSspcpForm() { $.validator.addMethod('Registration', function(value){ return /^(^[AZ]{2}[0-9]{2}\s?[AZ]{3}$)|(^[AZ][0-9]{1,3}[AZ]{3}$)|(^[AZ]{3}[0-9]{1,3}[AZ]$)|(^[0-9]{1,4}[AZ]{1,2}$)|(^[0-9]{1,3}[AZ]{1,3}$)|(^[AZ]{1,2}[0-9]{1,4}$)|(^[AZ]{1,3}[0-9]{1,3}$)|(^[AZ]{1,3}[0-9]{1,4}$)|(^[0-9]{3}[DX]{1}[0-9]{3}$)/.test(value); }, 'reg validation has failed'); $('#SspcpForm').validate({ rules: { 'sspcp[reg]': { required: true, rangelength: [2, 8], Registration: true }, }, messages: { 'sspcp[reg]': { required: "Your car's registration is required in advance, Please input one here.", Registration: "This registration number is not a recognised UK plate" }, } }); }