- Desde
- 24 Sep 2013
- Mensajes
- 40
Bueno como no he encontrado nada que se ajustase a mis necesidades (básicas inicialmente) estoy poco a poco desarrollando un toolkit de funciones esenciales y elementales, las cuales os dejo por aquí por si a alguno os interesa, las necesitáis y no queréis perder tiempo en desarrollarlas por vosotros mismos.
Como ya dije iré ampliando el toolkit poco a poco según vaya necesitando mas funciones. Espero que os sirva.
PD: Si veis alguna forma de optimizarlas o si queréis que añada alguna especifica solo tenéis que decirlo.
Un saludo
Como ya dije iré ampliando el toolkit poco a poco según vaya necesitando mas funciones. Espero que os sirva.
PD: Si veis alguna forma de optimizarlas o si queréis que añada alguna especifica solo tenéis que decirlo.
Insertar CODE, HTML o PHP:
//funciones base
function suma_impares(ndigito){ //Necesaria para vCIF
nsuma = ndigito * 2;
if (nsuma >= 10) nsuma = (nsuma%10) + 1;
return nsuma;
}
function quita_espacios(cadena) //Elimina los espacios al principio y al final de la cadena. NO los que haya dentro. Necesaria para vNIF
{
var compruebaizquierda=/^ .+$/;
var compruebaderecha=/^.+ $/;
var correcto;
correcto=false;
while (correcto==false) //repetimos las operaciones hasta acabar con todos los espacios
{
if (compruebaizquierda.test(cadena))
{
cadena = cadena.substr(1); //Si hay un espacio a la izquierda lo quitamos
}
else
{
if (compruebaderecha.test(cadena))
{
cadena = cadena.substr(0,cadena.length-1); //Si hay un espacio a la derecha lo quitamos
}
else
{
correcto=true; //Ya no quedan espacios
}
}
}
return (cadena); //Devolvemos la cadena limpia
}
//validaciones basicas
function vVacio(texto){ //Validacion de un campo vacio o solo espacios
var valido=true;
var texto2 = texto.replace(/\s/g,""); //eliminamos todos los espacios que pudiera haber .replace(" ","") solo elimina la primera ocurrencia que encuentre
//alert("'"+texto2+"'"); //Testear si funciona o no
if (texto2 != ''){ //si la cadena contiene algo no pasa el validador
valido = false;
}
return valido;
}
function aleatorio_acotado(min,max){//sacamos un numero aleatorio pasandole el minimo y el maximo sobre los que queremos que oscile
var aleatorio = Math.random();//guardamos el valor en una variable por si queremos testear algo con ese valor en un futuro
return (Math.floor(aleatorio * (max - min + 1))) + parseInt(min);
}
//validaciones genericas
function vFloat(num){//validamos que la variable que le pasamos contenga un numero float(entero o con decimales)
valido=true;
valor=parseFloat(num);
if (isNaN(valor))
{
valido=false;
}
return valido;
}
function vInt(num){//validamos que la variable que le pasamos contenga un numero entero(no pasa con floats)
valido=true;
valor=parseInt(num);
if (isNaN(valor)||num!=valor)//aqui añadimos el num!=valor para que si es float no pase el validador si quitamos esto y el || con floats tambien pasa ya que rendondea el float para pasarlo a int
{
valido=false;
}
return valido;
}
//validaciones especificas
function vCIF(cif){ //valida un codigo CIF (Codigo de empresa en España)
var cadenacif = new Array("A","B","C","D","E","F","G","H","I","J");
var arrcif = new Array(9);
var aux1;
var aux2;
var i;
var digito;
for (i=0;i<=8;i++){
arrcif[i] = (cif.substr(i,1) - 1) + 1;
}
aux1 = arrcif[2] + arrcif[4] + arrcif[6]
aux2 = suma_impares(arrcif[1]) + suma_impares(arrcif[3]) + suma_impares(arrcif[5]) + suma_impares(arrcif[7])
aux1 = aux1 + aux2
digito = 10 - (aux1%10)
if (cadenacif[digito-1] == cif.substr(8,1))
{
return (true)
}else{
if (!isNaN(cif.substr(8,1))){
if (digito == 10) digito=0;
return (digito==arrcif[8]);
}else{
return (false);
}
}
}
function vNIF(cifnif) //Valida un NIF/DNI (Codigo de identificacion nacional en España de cada persona)
{
var vnif,vdni;
var letranif,numero,letra;
cifnif = quita_espacios(cifnif);
cifnif = cifnif.toUpperCase();
letranif = cifnif.substr(0,1);
if (isNaN(letranif))
{
if (letranif != "X" && letranif != "Z")
{
if (!val_cif(cifnif))
return false;
else
return true;
}
else
cifnif = cifnif.substr(1);
}
vdni=cifnif.substr(0,cifnif.length-1); //Numeros del DNI
if (vdni.length > 8)
return false
vnif=cifnif.substr(cifnif.length-1,1); //Letra del DNI
numero=vdni - Math.round(vdni / 23) * 23; //Calculo de la letra
if (numero < 0) // esto es por que al redondear suma uno y hay que corregirlo
numero += 23; // sumamos 23 porque se multiplico el 1 que sumamos por 23
var letras = "TRWAGMYFPDXBNJZSQVHLCKE";
letra=letras.charAt(numero);
if (letra != vnif)
return false;
return true
}
//validamos que una estructura de correo electronico
//sea valida ATENCION, solo se valida la estructura para
//comprobar si es un dominio valido y demas se debe validar
//con lenguaje de servidor como php o java pero no con uno
//de cliente como Javascript
function vCorreo(Cadena){
Punto = Cadena.substring(Cadena.lastIndexOf('.') + 1, Cadena.length); // Cadena del .xxxx
Dominio = Cadena.substring(Cadena.lastIndexOf('@') + 1, Cadena.lastIndexOf('.')); // Dominio @xxxx.xxxx
Usuario = Cadena.substring(0, Cadena.lastIndexOf('@')); // Cadena xxxx@
Reserv = "@/º\"\'+*{}\\<>?¿[]áéíóú#·¡!^*;,:"; // Letras Reservadas
valido = true; //flag
// verifica qie el Usuario no tenga un caracter especial
for (var Cont=0; Cont<Usuario.length; Cont++) {
X = Usuario.substring(Cont,Cont+1);
if (Reserv.indexOf(X)!=-1)
valido = false;
}
// verifica qie el Punto no tenga un caracter especial
for (var Cont=0; Cont<Punto.length; Cont++) {
X=Punto.substring(Cont,Cont+1);
if (Reserv.indexOf(X)!=-1)
valido = false;
}
// verifica que el Dominio no tenga un caracter especial
for (var Cont=0; Cont<Dominio.length; Cont++) {
X=Dominio.substring(Cont,Cont+1);
if (Reserv.indexOf(X)!=-1)
valido = false;
}
// Verifica la sintaxis básica.....
if (Punto.length<2 || Dominio <1 || Cadena.lastIndexOf('.')<0 || Cadena.lastIndexOf('@')<0 || Usuario<1) {
valido = false;
}
return valido;
}
Un saludo
Última edición: