Demogracia Bits
• • • Colección privada de recortes de código y documentación para programación web
[Sí, aún estamos en pruebas; ¿por?]
Funciones para formularios
Estas funcioncitas, sin ser gran cosa, son útiles a la hora de validar formularios.
/*
* Recorta los blancos (espacios, tabuladores, retornos de carro...) iniciales y finales de texto
*/
function trim(texto){ // v2005-03-14
return texto.replace(/(^\s+)|(\s+$)/g, '');
}
/*
* Devuelve el valor seleccionado en una lista de tipo "radio"
*/
function valor_radio(lista){ // v2005-03-14
for(i=0; i<lista.length; i++)
if(lista[i].checked)
return lista[i].value;
return "";
}
/*
* Devuelve true si el texto está en blanco y false si no
*/
function es_vacio(texto){ // v2005-05-08
var re=/[^\s]+/;
return !re.test(texto);
}
/*
* Devuelve true si los dos valores son iguales, false si no
*/
function son_iguales(valor1, valor2){ // v2005-05-08
return (valor1===valor2);
}
/*
* Devuelve true si el texto supera la longitud máxima o false si no
*/
function es_largo(texto, maximo){ // v2005-05-08
return (texto.length>maximo);
}
/*
* Determina si el valor está en el intervalo cerrado [minimo, maximo]
*/
function esta_entre(valor, minimo, maximo){ // v2005-05-08
return ((valor>=minimo) && (valor<=maximo));
}
/*
* Determina si texto contiene un número (separador decimal: coma o punto)
*/
function es_numero(texto){ // v2005-05-13
var texto=texto.replace(/,/g, '.');
return parseFloat(texto)==texto;
}
/*
* Determina si texto contiene un entero
*/
function es_entero(texto){ // v2005-05-13
return /^(\-|\+){0,1}\d+$/.test(texto);
}
/*
* Devuelve true si es una fecha válida y false si no
* Nota: el rango de los meses es [1,12]
*/
function es_fecha(dia, mes, ano){ // v2005-03-14
var Fecha=new Date();
Fecha.setFullYear(ano, mes-1, dia);
return (Fecha.getDate()==dia) && (Fecha.getMonth()==mes-1) && (Fecha.getFullYear()==ano);
}
/*
* Limita un campo de formulario a una longitud máxima
*
* Uso:
* <textarea onkeyup="limitar_largo(this,8);"></textarea>
*/
function limitar_largo(campo, maximo){ // 2005-05-13
if(campo.value.length > maximo){
campo.value= campo.value.substring(0, maximo);
}
}
Supongo que es_fecha() necesita un poco de explicación. Cuando creamos una fecha en JavaScript, el lenguaje hace todo lo imaginable por cuadrar los datos que le damos: un 30 de febrero se convierte en 2 de marzo, etc. Comparando con el original podemos saber si JavaScript ha tenido que hacer el apaño, ergo los datos no eran del todo buenos.