/* 
 * Expresi?n regular obtenida de http://www.webintenta.com/category/javascript/ 
 * Revisa si la cadena es un certificado de identificaci?n fiscal (CIF).
 */
String.prototype.esCif = function(){ return (/^(X(-|\.)?0?\d{7}(-|\.)?[A-Z]|[A-Z](-|\.)?\d{7}(-|\.)? [0-9A-Z]|\d{8}(-|\.)?[A-Z])$/).test( this ) }

/* 
 * Expresi?n regular obtenida de http://www.webintenta.com/category/javascript/ 
 * Revisa si la cadena es un c?digo postal.
 */
String.prototype.esCodigoPostal = function(){ return (/^([1-9]{2}|[0-9][1-9]|[1-9][0-9])[0-9]{3}$/).test( this ) }

/* 
 * Expresi?n regular obtenida de http://www.webintenta.com/category/javascript/ 
 * Revisa si la cadena es una contrase?a segura.
 * (Entre 8 y 10 caracteres, por lo menos un digito y un alfanum?rico, y no puede contener caracteres espaciales)
 */
String.prototype.esContraseniaSegura = function(){ return (/(?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{8,10})$/).test( this ) }

/* 
 * Expresi?n regular obtenida de http://www.webintenta.com/category/javascript/ 
 * Revisa si la cadena es un correo v?lido.
 */
String.prototype.esCorreoElectronico = function(){ return (/[\w-\.]{3,}@([\w-]{2,}\.)*([\w-]{2,}\.)[\w-]{2,4}/).test( this ) }

/* 
 * Expresi?n regular obtenida de http://www.webintenta.com/category/javascript/ 
 * Revisa si la cadena es un entero.
 */
String.prototype.esEntero = function(){ return (/^(?:\+|-)?\d+$/).test( this ) }

/* 
 * Expresi?n regular obtenida de http://www.webintenta.com/category/javascript/ 
 * Revisa si la cadena es una fecha v?lida.
 * (Por ejemplo 01/01/2007)
 */
String.prototype.esFecha = function(){ return (/^\d{1,2}\/\d{1,2}\/\d{2,4}$/).test( this ) }

/* 
 * Expresi?n regular obtenida de http://www.webintenta.com/category/javascript/ 
 * Revisa si la cadena es una hora v?lida.
 * (Por ejemplo 10:45:23)
 */
String.prototype.esHora = function(){ return (/^(0[1-9]|1\d|2[0-3]):([0-5]\d):([0-5]\d)$/).test( this ) }

/* 
 * Expresi?n regular obtenida de http://www.webintenta.com/category/javascript/ 
 * Revisa si la cadena es un n?mero de tarjeta de cr?dito.
 */
String.prototype.esTarjetaCredito = function(){ return (/^((67\d{2})|(4\d{3})|(5[1-5]\d{2})|(6011))(-?\s?\d{4}){3}|(3[4,7])\ d{2}-?\s?\d{6}-?\s?\d{5}$/).test( this ) }

/* 
 * Expresi?n regular obtenida de http://www.webintenta.com/category/javascript/ 
 * Revisa si la cadena es un n?mero de tel?fono.
 */
String.prototype.esTelefono = function(){ return (/^[0-9]{2,3}-? ?[0-9]{6,7}$/).test( this ) }

/* 
 * Expresi?n regular obtenida de http://www.webintenta.com/category/javascript/ 
 * Revisa si la cadena es una URL v?lida.
 */
String.prototype.esUrl = function(){ return (/^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)( [a-zA-Z0-9\-\.\?\,\?\/\\\+&amp;%\$#_]*)?$/).test( this ) }

/*
 * Obtenido de http://www.anieto2k.com/2006/11/18/anadir-trim-a-javascript-mediante-prototype-el-metodo/
 * Elimina los espacios en blanco del comienzo y fin de la cadena.
 */
String.prototype.trim = function(){ return this.replace(/^s+|s+$/g,'') }