Uyyy que maravilla he encontradooooo...
Funciones para prevalidaciones de formularios, capturado de http://www.tejedoresdelweb.com/307/article-1066.html#h2_3
ahí va el tocho de codigo para copiar y pegar, magnifico y muy comprensible
Código PHP:
// ---------------------------------------------------------------------- //
// FormCheq.js (c) ChaTo 1998,1999 [www.chato.cl]
// Basado en:
// FormChek.js (c) Eric Krock (c) 1997 Netscape
// ---------------------------------------------------------------------- //
// 18 Feb 97 creado por Eric Krock (c) 1997
// Netscape Communications Corporation
// 18 Ago 98 modificado por Carlos Castillo (c) 1998 ChaTo
// Los principales cambios son: esta version es simplificada, para
// propositos de ensennanza y validacion basica de formularios, y esta
// adaptada para recibir caracteres del alfabeto espannol (acentos, etc.)
// 20 Oct 99 modificado por Carlos Castillo (c) 1999 ChaTo
// Se agrega la funcion isNice que ayuda a evitar comillas simples
// o dobles que causan problemas con muchos CGIs
//
// ---------------------------------------------------------------------- //
// RESUMEN //
// ---------------------------------------------------------------------- //
//
// El objetivo de las siguientes funciones en JavaScript es
// validar los ingresos del usuario en un formulario antes
// de que estos datos vayan al servidor.
//
// Varias de ellas toman un parametro opcional E.O.K (eok) (emptyOK
// - true si se acepta que el valor este vacio, false si no
// se acepta). El valor por omision es el que indique la
// variable global defaultEmptyOK definida mas abajo.
//
// ---------------------------------------------------------------------- //
// SINTAXIS DE LAS FUNCIONES //
// ---------------------------------------------------------------------- //
//
// FUNCION PARA CHEQUEAR UN CAMPO DE INGRESO:
//
// checkField (theField, theFunction, [, s] [,eok])
// verifica que el campo de ingreso theField cumpla con la
// condicion indicada en la funcion theFunction (que puede ser
// una de las descritas en "FUNCIONES DE VALIDACION" o cualquier
// otra provista por el usuario). En caso contrario despliega el
// string "s" (opcional, hay mensajes por default para las
// funciones de validacion provistas aqui).
//
// FUNCIONES DE VALIDACION:
//
// isInteger (s [,eok]) s representa un entero
// isNumber (s [,eok]) s es entero o tiene punto decimal
// isAlphabetic (s [,eok]) s tiene solo letras
// isAlphanumeric (s [,eok]) s tiene solo letras y/o numeros
// isPhoneNumber (s [,eok]) s tiene solo numeros, (,),-
// isEmail (s [,eok]) s es una direccion de e-mail
//
// FUNCIONES INTERNAS:
//
// isWhitespace (s) s es vacio o solo son espacios
// isLetter (c) c es una letra
// isDigit (c) c es un digito
// isLetterOrDigit (c) c es letra o digito
//
// FUNCIONES PARA REFORMATEAR DATOS:
//
// stripCharsInBag (s, bag) quita de s los caracteres en bag
// stripCharsNotInBag (s, bag) quita de s los caracteres NO en bag
// stripWhitespace (s) quita el espacio dentro de s
// stripInitialWhitespace (s) quita el espacio al principio de s
//
// FUNCIONES PARA PREGUNTARLE AL USUARIO:
//
// statBar (s) pone s en la barra de estado
// warnEmpty (theField, s) indica que theField esta vacio
// warnInvalid (theField, s) indica que theField es invalido
//
// ---------------------------------------------------------------------- //
// VARIABLES //
// ---------------------------------------------------------------------- //
// Esta variable indica si está bien dejar las casillas
// en blanco como regla general
var defaultEmptyOK = false
// Esta variable indica si se debe verificar la presencia de comillas
// u otros símbolos extraños en un campo, por omisión no, porque
// siempre crea problemas con las bases de datos o programas CGI
var checkNiceness = true;
// listas de caracteres
var digits = "0123456789";
var lowercaseLetters = "abcdefghijklmnopqrstuvwxyzáéíóúñü"
var uppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZÁÉÍÓÚÑ"
var whitespace = " \t\n\r";
// caracteres admitidos en nos de telefono
var phoneChars = "()-+ ";
// ---------------------------------------------------------------------- //
// TEXTOS PARA LOS MENSAJES //
// ---------------------------------------------------------------------- //
// m abrevia "missing" (faltante)
var mMessage = "Error: no puede dejar este espacio vacio"
// p abrevia "prompt"
var pPrompt = "Error: ";
var pAlphanumeric = "ingrese un texto que contenga solo letras y/o numeros";
var pAlphabetic = "ingrese un texto que contenga solo letras";
var pInteger = "ingrese un numero entero";
var pNumber = "ingrese un numero";
var pPhoneNumber = "ingrese un número de teléfono";
var pEmail = "ingrese una dirección de correo electrónico válida";
var pName = "ingrese un texto que contenga solo letras, numeros o espacios";
var pNice = "no puede utilizar comillas aqui";
// ---------------------------------------------------------------------- //
// FUNCIONES PARA MANEJO DE ARREGLOS //
// ---------------------------------------------------------------------- //
// JavaScript 1.0 (Netscape 2.0) no tenia un constructor para arreglos,
// asi que ellos tenian que ser hechos a mano. Desde JavaScript 1.1
// (Netscape 3.0) en adelante, las funciones de manejo de arreglos no
// son necesarias.
function makeArray(n) {
//*** BUG: If I put this line in, I get two error messages:
//(1) Window.length can't be set by assignment
//(2) daysInMonth has no property indexed by 4
//If I leave it out, the code works fine.
// this.length = n;
for (var i = 1; i <= n; i++) {
this[i] = 0
}
return this
}
// ---------------------------------------------------------------------- //
// CODIGO PARA FUNCIONES BASICAS //
// ---------------------------------------------------------------------- //
// s es vacio
function isEmpty(s)
{ return ((s == null) || (s.length == 0))
}
// s es vacio o solo caracteres de espacio
function isWhitespace (s)
{ var i;
if (isEmpty(s)) return true;
for (i = 0; i < s.length; i++)
{
var c = s.charAt(i);
// si el caracter en que estoy no aparece en whitespace,
// entonces retornar falso
if (whitespace.indexOf(c) == -1) return false;
}
return true;
}
// Quita todos los caracteres que que estan en "bag" del string "s" s.
function stripCharsInBag (s, bag)
{ var i;
var returnString = "";
// Buscar por el string, si el caracter no esta en "bag",
// agregarlo a returnString
for (i = 0; i < s.length; i++)
{ var c = s.charAt(i);
if (bag.indexOf(c) == -1) returnString += c;
}
return returnString;
}
// Lo contrario, quitar todos los caracteres que no estan en "bag" de "s"
function stripCharsNotInBag (s, bag)
{ var i;
var returnString = "";
for (i = 0; i < s.length; i++)
{
var c = s.charAt(i);
if (bag.indexOf(c) != -1) returnString += c;
}
return returnString;
}
// Quitar todos los espacios en blanco de un string
function stripWhitespace (s)
{ return stripCharsInBag (s, whitespace)
}
// La rutina siguiente es para cubrir un bug en Netscape
// 2.0.2 - seria mejor usar indexOf, pero si se hace
// asi stripInitialWhitespace() no funcionaria
function charInString (c, s)
{ for (i = 0; i < s.length; i++)
{ if (s.charAt(i) == c) return true;
}
return false
}
// Quita todos los espacios que antecedan al string
function stripInitialWhitespace (s)
{ var i = 0;
while ((i < s.length) && charInString (s.charAt(i), whitespace))
i++;
return s.substring (i, s.length);
}
// c es una letra del alfabeto espanol
function isLetter (c)
{
return( ( uppercaseLetters.indexOf( c ) != -1 ) ||
( lowercaseLetters.indexOf( c ) != -1 ) )
}
// c es un digito
function isDigit (c)
{ return ((c >= "0") && (c <= "9"))
}
// c es letra o digito
function isLetterOrDigit (c)
{ return (isLetter(c) || isDigit(c))
}
//continuará......