Validar formato de patentes de autos en Chile con expresiones regulares

Esta expresión regular valida el formato antiguo y el nuevo de la patente de autos en Chile, ojo, sólo valida el formato. Usé como separador los caracteres . (punto), – (guión) ó un espacio.

Expresión regular

$patente = 'AB-12-34'; $regex = '/^[a-z]{2}[\.\- ]?[0-9]{2}[\.\- ]?[0-9]{2}|[b-d,f-h,j-l,p,r-t,v-z]{2}[\-\. ]?[b-d,f-h,j-l,p,r-t,v-z]{2}[\.\- ]?[0-9]{2}$/i'; if (preg_match($regex, $patente))   echo "Patente correcta"; else   echo "Patente incorrecta";

Método para jQuery plugin Validation

$.validator.addMethod("patente", function(value, element) {   return this.optional(element) || value.match(/^[a-z]{2}[\.\- ]?[0-9]{2}[\.\- ]?[0-9]{2}|[b-d,f-h,j-l,p,r-t,v-z]{2}[\-\. ]?[b-d,f-h,j-l,p,r-t,v-z]{2}[\.\- ]?[0-9]{2}$/i); }, "La patente ingresada no es valida.");

Validador patente symfony

<?php /*  * Copyright (c) 2010 José Joaquín Núñez (josejnv@gmail.com) http://joaquinnunez.cl/    * Licensed under GPL (http://www.opensource.org/licenses/gpl-2.0.php)  * Use only for non-commercial usage.  *  * Version : 0.1 */ /**  * sfValidatorPatente validates patentes chilenas.  *  * @package    symfony  * @subpackage validator  * @author     José Joaquín Núñez <josejnv@gmail.com>  */ class sfValidatorPatente extends sfValidatorRegex {   const REGEX_PATENTE = '/^[a-z]{2}[\.\- ]?[0-9]{2}[\.\- ]?[0-9]{2}|[b-d,f-h,j-l,p,r-t,v-z]{2}[\-\. ]?[b-d,f-h,j-l,p,r-t,v-z]{2}[\.\- ]?[0-9]{2}$/i';   /**    * @see sfValidatorRegex    */   protected function configure($options = array(), $messages = array())   {     parent::configure($options, $messages);     $this->setOption('pattern', self::REGEX_PATENTE);   } }

Saludos

3 Responses to “Validar formato de patentes de autos en Chile con expresiones regulares”

  1. edopenrozedopenroz

    11:17 am
    December 20th, 2010

    Brillante!! Gracias por compartir!!

  2. <a href='http://hola' rel='external nofollow' class='url'>Franco</a>Franco

    7:00 pm
    January 30th, 2012

    tu validacion esta mala, acepta muchos formatos….
    ingreso xd1315 y la acepta…
    yo necesito que solo acepte validaciones de este tipo xd-1313

  3. EstebanEsteban

    1:55 am
    February 9th, 2012

    Gracias! Hago la acotación de que en algunos lugares (por ejemplo Wikipedia, a la fecha) dice que se ocupan 18 letras en las nuevas patentes, omitiéndose entre otras la N y permitiéndose la W. En otros sitios dice que se permite la N y se omite la W por ser esta última demasiado ancha. Yo ante la duda agregué la N a la expresión (dado que no es fundamental para el formulario), pero otros podrían querer confirmar. Si encuentran una buena fuente, compártanla :)

    Y Franco, la validación de formato no está mala, lo que pasa es que tú necesitas algo más estricto. En este regex los separadores (guión, espacio o punto) son opcionales. Para hacerlos obligatorios debes eliminar el ‘?’ que aparece a la derecha de los corchetes correspondientes.

 

Leave a Reply