CheckForm

Validacion multiple de formularios: - Validacion de enteros y reales con o sin signo - Validacion de letras - Validacion de alfanumericos - Validacion de direcciones de correo electronico - Validacion de DNIs - Validacion de dias, meses y años - Validacion de año bisiesto - Validacion de fecha dd/mm/aaaa o d/m/aaaa segun un separador dado - Validacion de codigos postales segun la provincia - Validacion de numeros de telefono segun la provincia
				///////////////////////// demo.html
<html>
<head>
<title>Validación de formularios</title>
<script language="JavaScript1.2" src="check.js"></script>
</head>
<body>
<h1>Validación de formularios</h1>
<hr>
<h2>Creado por Miguel Fernández Corral</h2>
<h3><[email protected]></h3>
<h4>Septiembre 2003</h4>

<hr>
<br>
<b>-Nota:</b> todas las funciones son Booleanas, es decir, devuelven verdadero (1) o falso (0)
<br>
<br>
<hr>
<form name="Check">
<li><u>Campos numéricos</u>:</li>
<table border="0">
<tr>
<td>Número entero con o sin signo</td>
<td><input type="text" name="Integer"></td>

<td><input type="button" value="Comprobar" onClick="alert(IsInteger(document.Check.Integer.value))"></td>
<td>Ejemplos: 1, -1, +1</td>
</tr>
<tr>
<td>Número entero con signo</td>
<td><input type="text" name="SignedInteger"></td>
<td><input type="button" value="Comprobar" onClick="alert(IsSignedInteger(document.Check.SignedInteger.value))"></td>
<td>Ejemplos: -1, +1</td>
</tr>
<tr>
<td>Número entero sin signo</td>
<td><input type="text" name="UnsignedInteger"></td>
<td><input type="button" value="Comprobar" onClick="alert(IsUnsignedInteger(document.Check.UnsignedInteger.value))"></td>

<td>Ejemplo: 1</td>
</tr>
<tr>
<td>Número real con o sin signo</td>
<td><input type="text" name="Real"></td>
<td><input type="button" value="Comprobar" onClick="alert(IsReal(document.Check.Real.value))"></td>
<td>Ejemplos: 1.23, -1.23, +1.23</td>
</tr>
<tr>
<td>Número real con signo</td>
<td><input type="text" name="SignedReal"></td>
<td><input type="button" value="Comprobar" onClick="alert(IsSignedReal(document.Check.SignedReal.value))"></td>
<td>Ejemplos: -1.23, +1.23</td>

</tr>
<tr>
<td>Número real sin signo</td>
<td><input type="text" name="UnsignedReal"></td>
<td><input type="button" value="Comprobar" onClick="alert(IsUnsignedReal(document.Check.UnsignedReal.value))"></td>
<td>Ejemplo: 1.23</td>
</tr>
</table>
<br>
<br>
<li><u>Campos cadena de caracteres</u>:</li>
<table border="0">
<tr>

<td>Letra</td>
<td><input type="text" name="Char"></td>
<td><input type="button" value="Comprobar" onClick="alert(IsChar(document.Check.Char.value))"></td>
<td>Ejemplos: a, A</td>
</tr>
<tr>
<td>Alfanumérico</td>
<td><input type="text" name="AlphaNumeric"></td>
<td><input type="button" value="Comprobar" onClick="alert(IsAlphaNumeric(document.Check.AlphaNumeric.value))"></td>
<td>Ejemplos: a1b2c3, A1B2C3, aA1bB1cC1</td>
</tr>
<tr>
<td>Correo electrónico</td>

<td><input type="text" name="Mail"></td>
<td><input type="button" value="Comprobar" onClick="alert(IsMail(document.Check.Mail.value))"></td>
<td>Ejemplo: [email protected]</td>
</tr>
<tr>
<td>DNI</td>
<td><input type="text" name="NIF"></td>
<td><input type="button" value="Comprobar" onClick="alert(IsNIF(document.Check.NIF.value))"></td>
<td>Ejemplos: 01234567a, 01234567A</td>
</tr>
</table>
<br>
<br>
<li><u>Campos fecha</u>:</li>

<table border="0">
<tr>
<td>Día</td>
<td><input type="text" name="Day" size="3"> de <input type="text" name="Month1" size="3"></td>
<td><input type="button" value="Comprobar" onClick="alert(IsDay(document.Check.Day.value,document.Check.Month1.value))"></td>
<td>Ejemplos: 1 de 1, 1 de 12</td>
</tr>
<tr>
<td>Mes</td>
<td><input type="text" name="Month2"></td>
<td><input type="button" value="Comprobar" onClick="alert(IsMonth(document.Check.Month2.value))"></td>
<td>Ejemplos: 1, 12</td>

</tr>
<tr>
<td>Año</td>
<td><input type="text" name="Year"></td>
<td><input type="button" value="Comprobar" onClick="alert(IsYear(document.Check.Year.value))"></td>
<td>Ejemplo: 2003</td>
</tr>
<tr>
<td>Año bisiesto</td>
<td><input type="text" name="LeapYear"></td>
<td><input type="button" value="Comprobar" onClick="alert(IsLeapYear(document.Check.LeapYear.value))"></td>
<td>Ejemplo: 2003</td>
</tr>

<tr>
<td>Fecha</td>
<td><input type="text" name="Date"></td>
<td><input type="button" value="Comprobar" onClick="alert(IsDate(document.Check.Date.value, '/'))"></td>
<td>Ejemplos: 1/2/2003, 01/02/2003</td>
</tr>
</table>
<br>
<br>
<li><u>Campos código postal y teléfono según provincia</u>:</li>
<table border="0">
<tr>
<td>Provincia</td>

<td>
<select name="ProvinceIndex">
<option value="0" selected>Álava</option>
<option value="1">Albacete</option>
<option value="2">Alicante</option>
<option value="3">Almería</option>
<option value="4">Asturias</option>
<option value="5">Ávila</option>
<option value="6">Badajoz</option>
<option value="7">Barcelona</option>

<option value="8">Burgos</option>
<option value="9">Cáceres</option>
<option value="10">Cádiz</option>
<option value="11">Cantabria</option>
<option value="12">Castellón de la Plana</option>
<option value="13">Ceuta</option>
<option value="14">Ciudad Real</option>
<option value="15">Córdoba</option>
<option value="16">Coruña, A</option>

<option value="17">Cuenca</option>
<option value="18">Girona</option>
<option value="19">Granada</option>
<option value="20">Guadalajara</option>
<option value="21">Guipúzcoa</option>
<option value="22">Huelva</option>
<option value="23">Huesca</option>
<option value="24">Illes Balears</option>
<option value="25">Jaén</option>

<option value="26">León</option>
<option value="27">Lleida</option>
<option value="28">Lugo</option>
<option value="29">Madrid</option>
<option value="30">Málaga</option>
<option value="31">Melilla</option>
<option value="32">Murcia</option>
<option value="33">Navarra</option>
<option value="34">Ourense</option>

<option value="35">Palencia</option>
<option value="36">Palmas, Las</option>
<option value="37">Pontevedra</option>
<option value="38">Rioja, La</option>
<option value="39">Salamanca</option>
<option value="40">Santa Cruz de Tenerife</option>
<option value="41">Segovia</option>
<option value="42">Sevilla</option>
<option value="43">Soria</option>

<option value="44">Tarragona</option>
<option value="45">Teruel</option>
<option value="46">Toledo</option>
<option value="47">Valencia</option>
<option value="48">Valladolid</option>
<option value="49">Vizcaya</option>
<option value="50">Zamora</option>
<option value="51">Zaragoza</option>
</select>

</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Código postal</td>
<td><input type="text" name="PostalCode"></td>
<td><input type="button" value="Comprobar" onClick="alert(IsPostalCode(document.Check.PostalCode.value, document.Check.ProvinceIndex.options[document.Check.ProvinceIndex.selectedIndex].value))"></td>
<td>Ejemplo: 01234</td>
</tr>
<tr>
<td>Número de teléfono</td>
<td><input type="text" name="PhoneNumber"></td>
<td><input type="button" value="Comprobar" onClick="alert(IsPhoneNumber(document.Check.PhoneNumber.value, document.Check.ProvinceIndex.options[document.Check.ProvinceIndex.selectedIndex].value))"></td>

<td>Ejemplo: 987654321</td>
</tr>
</table>
<br>
<hr>
<br>
<input type="reset" value="Resetear formulario">
<input type="button" value="Cerrar la ventana" onClick="window.close()">
</form>
<br>
</body>
</html>



///////////////////////// check.js

/* Creado por Miguel Fernández Corral - Septiembre 2003 - [email protected]*/

/*************************************************************************************************************************/
/* Validación de campos numericos */
/*************************************************************************************************************************/

//la funcion "IsInteger(YourNumber)" chequea si "YourNumber" es un numero entero con o sin signo valido
//La variable "YourNumber" es una cadena de caracteres
function IsInteger(YourNumber)
{
var Template = /^[+|-]?d+$/ //Formato de numero entero
return (Template.test(YourNumber)) ? 1 : 0 //Compara "YourNumber" con el formato "Template" y si coincidevuelve verdadero si no devuelve falso
}

//la funcion "IsSignedInteger(YourNumber)" chequea si "YourNumber" es un numero entero con signo valido
//La variable "YourNumber" es una cadena de caracteres
function IsSignedInteger(YourNumber)
{
var Template = /^[+|-]d+$/ //Formato de numero entero con signo
return (Template.test(YourNumber)) ? 1 : 0 //Compara "YourNumber" con el formato "Template" y si coincidevuelve verdadero si no devuelve falso
}

//la funcion "IsUnsignedInteger(YourNumber)" chequea si "YourNumber" es un numero entero sin signo valido
//La variable "YourNumber" es una cadena de caracteres
function IsUnsignedInteger(YourNumber)
{
var Template = /^d+$/ //Formato de numero entero sin signo
return (Template.test(YourNumber)) ? 1 : 0 //Compara "YourNumber" con el formato "Template" y si coincidevuelve verdadero si no devuelve falso
}

//la funcion "IsReal(YourNumber)" chequea si "YourNumber" es un numero real con o sin signo valido
//La variable "YourNumber" es una cadena de caracteres
function IsReal(YourNumber)
{
var Template = /^(([+|-]?d+(.d*)?)|([+|-]?(d*.)?d+))$/ //Formato de numero real con signo
return (Template.test(YourNumber)) ? 1 : 0 //Compara "YourNumber" con el formato "Template" y si coincidevuelve verdadero si no devuelve falso
}

//la funcion "IsSignedReal(YourNumber)" chequea si "YourNumber" es un numero real con signo valido
//La variable "YourNumber" es una cadena de caracteres
function IsSignedReal(YourNumber)
{
var Template = /^(([+|-]d+(.d*)?)|([+|-](d*.)?d+))$/ //Formato de numero real con signo
return (Template.test(YourNumber)) ? 1 : 0 //Compara "YourNumber" con el formato "Template" y si coincidevuelve verdadero si no devuelve falso
}

//la funcion "IsUnsignedReal(YourNumber)" chequea si "YourNumber" es un numero real sin signo valido
//La variable "YourNumber" es una cadena de caracteres
function IsUnsignedReal(YourNumber)
{
var Template = /^((d+(.d*)?)|((d*.)?d+))$/ //Formato de numero real sin signo
return (Template.test(YourNumber)) ? 1 : 0 //Compara "YourNumber" con el formato "Template" y si coincidevuelve verdadero si no devuelve falso
}




/*************************************************************************************************************************/
/* Validación de campos cadena de caracteres */
/*************************************************************************************************************************/

//la funcion "IsChar(YourChar)" chequea si "YourChar" es una letra valida
//La variable "YourChar" es una cadena de caracteres
function IsChar(YourChar)
{
var Template = /^[a-z]$/i //Formato de letra
return (Template.test(YourChar)) ? 1 : 0 //Compara "YourChar" con el formato "Template" y si coincidevuelve verdadero si no devuelve falso
}

//la funcion "IsAlphaNumeric(YourAlphaNumeric)" chequea si "YourAlphaNumeric" es una letra valida
//La variable "YourAlphaNumeric" es una cadena de caracteres
function IsAlphaNumeric(YourAlphaNumeric)
{
var Template = /^[a-z0-9]+$/i //Formato de alfanumerico
return (Template.test(YourAlphaNumeric)) ? 1 : 0 //Compara "YourAlphaNumeric" con el formato "Template" y si coincidevuelve verdadero si no devuelve falso
}

//la funcion "IsMail(YourMail)" chequea si "YourMail" es una direccion de correo electronico valida
//La variable "YourMail" es una cadena de caracteres
function IsMail(YourMail)
{
var Template = /^[a-z][a-z-_0-9.]+@[a-z-_=>0-9.]+.[a-z]{2,3}$/i //Formato de direccion de correo electronico
return (Template.test(YourMail)) ? 1 : 0 //Compara "YourMail" con el formato "Template" y si coincidevuelve verdadero si no devuelve falso
}

//la funcion "IsNIF(YourNIF)" chequea si "YourNIF" es un DNI valido
//La variable "YourNIF" es una cadena de caracteres
function IsNIF(YourNIF)
{
if (YourNIF.length != 9) return 0 //Si la longitud de "YourNIF" es menor que 9 devuelve falso
else if (!IsUnsignedInteger(YourNIF.substring(0, 8))) return 0 //Si los ocho primeros digitos no forman un numero entero sin signo valido devuelve falso
else if (!IsChar(YourNIF.substring(8, 9))) return 0 //Si el ultimo digito no es una letra valida devuelve falso
else
{
var ControlValue = 0 //Control de calculos segun el criterio de correccion
var NIFCharIndex = 0 //Almacenara la posicion de la letra correpondiente a la parte numerica del DNI con respecto al array "NIFChars"
//El siguiente array "NIFChars" contiene las letras de DNI ordenadas segun el criterio de correccion
var NIFChars = new Array('T', 'R', 'W', 'A', 'G', 'M', 'Y', 'F', 'P', 'D', 'X', 'B', 'N', 'J', 'Z', 'S', 'Q', 'V', 'H', 'L', 'C', 'K', 'E')
var NIFNumber = YourNIF.substring(0, 8) //Almacenanos la parte numerica del DNI en "NIFNumber"
var NIFChar = YourNIF.substring(8, 9) //Almacenamos la letra del DNI en "NIFChar"
NIFChar = NIFChar.toUpperCase() //Pasamos la letra del DNI a mayusculas por si acaso estaba en minusculas
//Los siguientes 4 calculos sirven para calcular la posicion de la letra correspondiente al la parte numerica del DNI "NIFNumber" en en array "NIFChars"
ControlValue = NIFNumber / NIFChars.length
ControlValue = Math.floor(ControlValue);
ControlValue = ControlValue * NIFChars.length
NIFCharIndex = NIFNumber - ControlValue
return (NIFChar == NIFChars[NIFCharIndex]) ? 1 : 0 //Si la letra coincide con la letra dada devuelve verdadero si no devuelve falso
}
}




/*************************************************************************************************************************/
/* Validación de campos fecha */
/*************************************************************************************************************************/

//El array "DaysInMonth" contiene los dias que tiene cada mes
var DaysInMonth = new Array()
DaysInMonth[0] = 31 //Los dias que tiene Enero
DaysInMonth[1] = 29 //Los dias que tiene Febrero se calculan mas adelante por si el año es bisiesto
DaysInMonth[2] = 31 //Los dias que tiene Marzo
DaysInMonth[3] = 30 //Los dias que tiene Abril
DaysInMonth[4] = 31 //Los dias que tiene Mayo
DaysInMonth[5] = 30 //Los dias que tiene Junio
DaysInMonth[6] = 31 //Los dias que tiene Julio
DaysInMonth[7] = 31 //Los dias que tiene Agosto
DaysInMonth[8] = 30 //Los dias que tiene Septiembre
DaysInMonth[9] = 31 //Los dias que tiene Octubre
DaysInMonth[10] = 30 //Los dias que tiene Noviembre
DaysInMonth[11] = 31 //Los dias que tiene Diciembre

//La funcion "IsDay(YourDay, YourMonth)" chequea si "YourDay" es un numero de dia valido para el mes "YourMonth"
//Las variables "YourDay" y "YourMonth" son cadenas de caracteres
function IsDay(YourDay, YourMonth)
{
if (IsUnsignedInteger(YourDay) && IsMonth(YourMonth)) //Si "YourDay" es un numero entero sin signo valido y "YourMonth" es un numero de mes valido
{
return (parseInt(YourDay) > 0 && parseInt(YourDay) <= DaysInMonth[YourMonth - 1]) ? 1 : 0 //Si "YourDay" esta entre 1 y los dias que tiene el mes "YourMonth" devuelve verdadero si no devuelve falso
}
else return 0 //Si "YourDay" no es un numero entero sin signo valido o "YourMonth" no es un numero de mes valido devuelve falso
}

//La funcion "IsMonth(YourMonth)" chequea si "YourMonth" es un numero de mes valido
//La variable "YourMonth" es una cadena de caracteres
function IsMonth(YourMonth)
{
if (IsUnsignedInteger(YourMonth)) //Si "YourMonth" es un número entero sin signo valido
{
return (parseInt(YourMonth) > 0 && parseInt(YourMonth) <= 12) ? 1 : 0 //Si "YourMonth" esta entre 1 y 12 devuelve verdadero si no devuelve falso
}
else return 0 //Si "YourMonth" no es un numero entero sin signo valido devuelve falso
}

//La funcion "IsYear(YourYear)" chequea si "YourYear" es un numero de año valido
//La variable "YourYear" es una cadena de caracteres
function IsYear(YourYear)
{
if (IsUnsignedInteger(YourYear)) //Si "YourYear" es un numero entero sin signo valido
{
return (parseInt(YourYear) > 1900 && parseInt(YourYear) < 3000) ? 1 : 0 //Si "YourYear" es mayor que 1900 y menor que 3000 devuelve verdadero si no devuelve falso
}
else return 0 //Si "YourYear" no es un numero entero sin signo valido devuelve falso
}

//La funcion "IsLeapYear(YourYear)" chequea si "YourYear" es un año es bisiesto
//La variable "YourYear" es una cadena de caracteres
function IsLeapYear(YourYear)
{
if (IsUnsignedInteger(YourYear)) //Si "YourYear" es un numero entero sin signo valido
{
return ((YourYear % 4 == 0 && YourYear % 100 != 0) || (YourYear % 400 == 0)) ? 1 : 0// Si "YourYear" es un año es bisiesto devuelve verdadero si no devuelve falso
}
else return 0 //Si "YourYear" no es un numero entero sin signo valido devuelve falso
}

//La funcion "IsDate(YourDate, YourDateSeparator)" chequea si "YourDate" es una fecha valida con el separador de fecha "YourDateSeparator"
//Las variables "YourDate" y "YourDateSeparator" son cadenas de caracteres
function IsDate(YourDate, YourDateSeparator)
{
var IsAllOK = 1 //Variable iniciada como verdadera para saber si todas las validaciones fueron correctas
var YourDateParts = new Array() //Variable donde se almacenaran las partes de la fecha (dia, mes y año) tras haber eliminado el separador de la fecha
YourDateParts = YourDate.split(YourDateSeparator) //Se crean las partes de la fecha (dia, mes y año) eliminando el separador de la fecha
var Day = YourDateParts[0] //El dia corresponde al primer elemento del array
var Month = YourDateParts[1] //El mes corresponde al segundo elemento del array
var Year = YourDateParts[2] //El año corresponde al tercer elemento del array
if (IsYear(Year) && !IsLeapYear(Year)) //Si "Year" es un numero de año valido y no es bisiesto
{
DaysInMonth[1] = 28 //Como "Year" no es bisiesto Febrero tiene entonces 28 dias
}
else if (IsYear(Year) && IsLeapYear(Year)) //Si "Year" es un numero de año valido y es bisiesto
{
DaysInMonth[1] = 29 //Como "Year" es bisiesto Febrero tiene entonces 29 dias
}
else IsAllOK = 0 //Si "Year" no es un numero de año valido la variable pasa a ser falsa
IsAllOK = (IsMonth(Month)) ? IsAllOK : 0 //Si "Month" es un numero de mes valido la variable se queda como esta si no pasa a ser falsa
IsAllOK = (IsDay(Day, Month)) ? IsAllOK : 0 //Si "Day" es un numero de dia valido para el mes "Month" la variable se queda como esta si no pasa a ser falsa
return IsAllOK //Finalmente se devuelve el valor de la variable como verdadero o falso
}




/*************************************************************************************************************************/
/* Validación de campos codigo postal y telefono segun provincia */
/*************************************************************************************************************************/

//El array "PostalCodeInitInit" contiene los primeros digitos del codigo postal de una provincia
var PostalCodeInit = new Array()
PostalCodeInit[0] = '01' //Primeros digitos del codigo postal de Álava
PostalCodeInit[1] = '02' //Primeros digitos del codigo postal de Albacete
PostalCodeInit[2] = '03' //Primeros digitos del codigo postal de Alicante
PostalCodeInit[3] = '04' //Primeros digitos del codigo postal de Almería
PostalCodeInit[4] = '33' //Primeros digitos del codigo postal de Asturias
PostalCodeInit[5] = '05' //Primeros digitos del codigo postal de Ávila
PostalCodeInit[6] = '06' //Primeros digitos del codigo postal de Badajoz
PostalCodeInit[7] = '08' //Primeros digitos del codigo postal de Barcelona
PostalCodeInit[8] = '09' //Primeros digitos del codigo postal de Burgos
PostalCodeInit[9] = '10' //Primeros digitos del codigo postal de Cáceres
PostalCodeInit[10] = '11' //Primeros digitos del codigo postal de Cádiz
PostalCodeInit[11] = '39' //Primeros digitos del codigo postal de Cantabria
PostalCodeInit[12] = '12' //Primeros digitos del codigo postal de Castellón de la Plana
PostalCodeInit[13] = '51' //Primeros digitos del codigo postal de Ceuta
PostalCodeInit[14] = '13' //Primeros digitos del codigo postal de Ciudad Real
PostalCodeInit[15] = '14' //Primeros digitos del codigo postal de Córdoba
PostalCodeInit[16] = '15' //Primeros digitos del codigo postal de Coruña, A
PostalCodeInit[17] = '16' //Primeros digitos del codigo postal de Cuenca
PostalCodeInit[18] = '17' //Primeros digitos del codigo postal de Girona
PostalCodeInit[19] = '18' //Primeros digitos del codigo postal de Granada
PostalCodeInit[20] = '19' //Primeros digitos del codigo postal de Guadalajara
PostalCodeInit[21] = '20' //Primeros digitos del codigo postal de Guipúzcoa
PostalCodeInit[22] = '21' //Primeros digitos del codigo postal de Huelva
PostalCodeInit[23] = '22' //Primeros digitos del codigo postal de Huesca
PostalCodeInit[24] = '07' //Primeros digitos del codigo postal de Illes Balears
PostalCodeInit[25] = '23' //Primeros digitos del codigo postal de Jaén
PostalCodeInit[26] = '24' //Primeros digitos del codigo postal de León
PostalCodeInit[27] = '25' //Primeros digitos del codigo postal de Lleida
PostalCodeInit[28] = '27' //Primeros digitos del codigo postal de Lugo
PostalCodeInit[29] = '28' //Primeros digitos del codigo postal de Madrid
PostalCodeInit[30] = '29' //Primeros digitos del codigo postal de Málaga
PostalCodeInit[31] = '52' //Primeros digitos del codigo postal de Melilla
PostalCodeInit[32] = '30' //Primeros digitos del codigo postal de Murcia
PostalCodeInit[33] = '31' //Primeros digitos del codigo postal de Navarra
PostalCodeInit[34] = '32' //Primeros digitos del codigo postal de Ourense
PostalCodeInit[35] = '34' //Primeros digitos del codigo postal de Palencia
PostalCodeInit[36] = '35' //Primeros digitos del codigo postal de Palmas, Las
PostalCodeInit[37] = '36' //Primeros digitos del codigo postal de Pontevedra
PostalCodeInit[38] = '26' //Primeros digitos del codigo postal de Rioja, La
PostalCodeInit[39] = '37' //Primeros digitos del codigo postal de Salamanca
PostalCodeInit[40] = '38' //Primeros digitos del codigo postal de Santa Cruz de Tenerife
PostalCodeInit[41] = '40' //Primeros digitos del codigo postal de Segovia
PostalCodeInit[42] = '41' //Primeros digitos del codigo postal de Sevilla
PostalCodeInit[43] = '42' //Primeros digitos del codigo postal de Soria
PostalCodeInit[44] = '43' //Primeros digitos del codigo postal de Tarragona
PostalCodeInit[45] = '44' //Primeros digitos del codigo postal de Teruel
PostalCodeInit[46] = '45' //Primeros digitos del codigo postal de Toledo
PostalCodeInit[47] = '46' //Primeros digitos del codigo postal de Valencia
PostalCodeInit[48] = '47' //Primeros digitos del codigo postal de Valladolid
PostalCodeInit[49] = '48' //Primeros digitos del codigo postal de Vizcaya
PostalCodeInit[50] = '49' //Primeros digitos del codigo postal de Zamora
PostalCodeInit[51] = '50' //Primeros digitos del codigo postal de Zaragoza

//El array "Prefix" contiene el prefijo telefonico de una provincia
var Prefix = new Array()
Prefix[0] = '945' //Prefijo telefonico de Álava
Prefix[1] = '967' //Prefijo telefonico de Albacete
Prefix[2] = '96' //Prefijo telefonico de Alicante
Prefix[3] = '950' //Prefijo telefonico de Almería
Prefix[4] = '98' //Prefijo telefonico de Asturias
Prefix[5] = '920' //Prefijo telefonico de Ávila
Prefix[6] = '924' //Prefijo telefonico de Badajoz
Prefix[7] = '93' //Prefijo telefonico de Barcelona
Prefix[8] = '947' //Prefijo telefonico de Burgos
Prefix[9] = '927' //Prefijo telefonico de Cáceres
Prefix[10] = '956' //Prefijo telefonico de Cádiz
Prefix[11] = '942' //Prefijo telefonico de Cantabria
Prefix[12] = '964' //Prefijo telefonico de Castellón de la Plana
Prefix[13] = '956' //Prefijo telefonico de Ceuta
Prefix[14] = '926' //Prefijo telefonico de Ciudad Real
Prefix[15] = '957' //Prefijo telefonico de Córdoba
Prefix[16] = '981' //Prefijo telefonico de Coruña, A
Prefix[17] = '969' //Prefijo telefonico de Cuenca
Prefix[18] = '972' //Prefijo telefonico de Girona
Prefix[19] = '957' //Prefijo telefonico de Granada
Prefix[20] = '949' //Prefijo telefonico de Guadalajara
Prefix[21] = '943' //Prefijo telefonico de Guipúzcoa
Prefix[22] = '959' //Prefijo telefonico de Huelva
Prefix[23] = '974' //Prefijo telefonico de Huesca
Prefix[24] = '971' //Prefijo telefonico de Illes Balears
Prefix[25] = '953' //Prefijo telefonico de Jaén
Prefix[26] = '987' //Prefijo telefonico de León
Prefix[27] = '973' //Prefijo telefonico de Lleida
Prefix[28] = '982' //Prefijo telefonico de Lugo
Prefix[29] = '91' //Prefijo telefonico de Madrid
Prefix[30] = '95' //Prefijo telefonico de Málaga
Prefix[31] = '95' //Prefijo telefonico de Melilla
Prefix[32] = '968' //Prefijo telefonico de Murcia
Prefix[33] = '948' //Prefijo telefonico de Navarra
Prefix[34] = '988' //Prefijo telefonico de Ourense
Prefix[35] = '979' //Prefijo telefonico de Palencia
Prefix[36] = '928' //Prefijo telefonico de Palmas, Las
Prefix[37] = '986' //Prefijo telefonico de Pontevedra
Prefix[38] = '941' //Prefijo telefonico de Rioja, La
Prefix[39] = '923' //Prefijo telefonico de Salamanca
Prefix[40] = '922' //Prefijo telefonico de Santa Cruz de Tenerife
Prefix[41] = '921' //Prefijo telefonico de Segovia
Prefix[42] = '95' //Prefijo telefonico de Sevilla
Prefix[43] = '975' //Prefijo telefonico de Soria
Prefix[44] = '977' //Prefijo telefonico de Tarragona
Prefix[45] = '978' //Prefijo telefonico de Teruel
Prefix[46] = '925' //Prefijo telefonico de Toledo
Prefix[47] = '96' //Prefijo telefonico de Valencia
Prefix[48] = '983' //Prefijo telefonico de Valladolid
Prefix[49] = '94' //Prefijo telefonico de Vizcaya
Prefix[50] = '980' //Prefijo telefonico de Zamora
Prefix[51] = '976' //Prefijo telefonico de Zaragoza

//La funcion "IsPostalCode(YourPostalCode, YourProvinceIndex)" chequea si "YourPostalCode" es el codigo postal de la provincia "YourProvinceIndex"
//Las variables "YourPostalCode" y "YourProvinceIndex" son cadenas de caracteres
function IsPostalCode(YourPostalCode, YourProvinceIndex)
{
if (YourPostalCode.length != 5) return 0 //Si la longitud de "YourPostalCode" es diferente de 5 devuelve falso
else if (!IsUnsignedInteger(YourPostalCode) || !IsUnsignedInteger(YourProvinceIndex)) return 0 //Si "YourPostalCode" o "YourProvinceIndex" no son numeros enteros sin signo validos devuelve falso
else return (YourPostalCode.substring(0, 2) == PostalCodeInit[YourProvinceIndex]) ? 1 : 0 //Si los 2 primeros digitos de "YourPostalCode" coinciden con el valor de "PostalCodeInit[YourProvinceIndex]" devuelve verdadero si no devuelve falso
}

//La funcion "IsPhoneNumber(YourPhoneNumber, YourProvinceIndex)" chequea si "YourPhoneNumber" es un telefono valido de la provincia "YourProvinceIndex"
//Las variables "YourPhoneNumber" y "YourProvinceIndex" son cadenas de caracteres
function IsPhoneNumber(YourPhoneNumber, YourProvinceIndex)
{
if (YourPhoneNumber.length != 9) return 0 //Si la longitud de "YourPhoneNumber" es diferente de 9 devuelve falso
else if (!IsUnsignedInteger(YourPhoneNumber) || !IsUnsignedInteger(YourProvinceIndex)) return 0 //Si "YourPhoneNumber" o "YourProvinceIndex" no son numeros enteros sin signo validos devuelve falso
else return (YourPhoneNumber.substring(0, Prefix[YourProvinceIndex].length) == Prefix[YourProvinceIndex]) ? 1 : 0 //Si el prefijo de "YourPhoneNumber" coincide con el de "Prefix[YourProvinceIndex]" devuelve verdadero si no devuelve falso
}
Descargar adjuntos
COMPARTE ESTE TUTORIAL

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
TUTORIAL ANTERIOR

SIGUIENTE TUTORIAL