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