Cita:
Iniciado por KarlanKas Código PHP:
<html>
<head>
<SCRIPT language=JavaScript><!--
function ValidateForm(form)
{
comprobarCoherencia();
}
//------EDITABLE-----------
var palabraMasCorta=2;
var maximoDeVocales=2;
var maximoDeConsonantes=2;
var nombreDelCampo="Tnom";
//---------------------------
var palabra=new Array();
var maximoconsonante=new Array();
var maximovocal=new Array();
var laFrase="";
var vocales="AEIOUÁÉÍÓÚ";
var consonantes="BCDFGHJKLMNÑPQRSTVWXYZ";
var mal=0;
var malmal=0;
var espacio=0;
var campo
function comprobarCoherencia(unCampo){
if(unCampo){nombreDelCampo=unCampo;}
malmal=0;
mal=0;
espacio=0
//localizar el campo que es
for (a=0;a<document.forms[0].elements.length;a++){
if(document.forms[0].elements[a].name==nombreDelCampo){
campo=document.forms[0].elements[a];
break;
}
}
if(a==document.forms[0].elements.length){
alert("No existe campo llamado "+nombreDelCampo+"\nCompruebe que coinciden mayusculas y minúsculas");
return false}
frase=campo.value;
frase=frase.toUpperCase();
for (a=0;a<frase.length;a++){
letra=frase.charAt(a);
if(letra==" "){espacio+=1
if(espacio<2){
laFrase+=letra;
}}
else{
//Quitar los caracteres extraños y poner las primeras letras de cada
// palabra en mayusculas
if(isNaN(letra) && letra.toUpperCase()!=letra.toLowerCase()){
espacio=0;
laFrase+=(laFrase.charAt(laFrase.length-1)==" " ||a==0)?letra:letra.toLowerCase();
}
}
}
// Quitar los espacios de más
if(laFrase.substring(laFrase.length-1)==" "){
laFrase=laFrase.substring(0,laFrase.length-1);
}
if(laFrase.charAt(0)==" "){
laFrase=laFrase.substring(1,laFrase.length);
}
//sustituir lo introducido por el resultado de quitar los espacios de más
// y los caracteres extraños
campo.value=laFrase;
if(laFrase==""){return false;}
//Separar por palabras la frase
frase=laFrase;
laFrase="";
palabra=frase.split(" ");
//Comprobar la coherencia y que no haya
//más consonantes y vocales juntas del
//máximo permitido
for (b=0;b<palabra.length;b++){
maximoconsonante[b]=0;
maximovocal[b]=0;
control=0;
consonante=0;
vocal=0;
for(a=0;a<palabra[b].length;a++){
letra=palabra[b].charAt(a).toUpperCase();
if (vocales.indexOf(letra)>-1){
consonante=0
vocal+=1
if(vocal>maximovocal[b]){
maximovocal[b]=vocal;
}
}
if(consonantes.indexOf(letra)>-1){
vocal=0
consonante+=1
if(consonante>maximoconsonante[b]){
maximoconsonante[b]=consonante;
}
}
}
}
// Marcar los errores
for (a=0;a<palabra.length;a++){
b=a+1;
Mensaje="Palabra número " + b + ": "+palabra[a];
if (maximoconsonante[a]>maximoDeConsonantes){
Mensaje+="\nNombre no Valido utilice otro, Tiene mas de "+maximoDeConsonantes+" cc";
mal=1;malmal=1
}
if(maximovocal[a]>maximoDeVocales){
Mensaje+="\nNombre no Valido utilice otro, Tiene mas de "+ maximoDeVocales+ " vv";
mal=1;malmal=1
}
if(palabra[a].length<=palabraMasCorta){
Mensaje+="\nNombre no Valido utilice otro, Es demasiado corto";
mal=1;malmal=1
}
if(mal==1){alert(Mensaje);}
mal=0;
}
if(malmal==0){document.forms[0].submit()}
}
//-->
</script>
<title>Registro de Usuario - SuperMundo.com</title>
</head>
<body bgcolor="#FFFFFF">
<br>
<form action="registrar.asp" method="POST" name="Registro">
<div align="center"><center>
<table border="1" cellpadding="0" cellspacing="0"
bgcolor="#C0C0C0">
<tr>
<td bgcolor="#000080"><font color="#FFFFFF" size="2"
face="Tahoma"><strong>Registro de Usuario</strong></font></td>
</tr>
<tr>
<td><div align="center"><center><table border="0"
cellspacing="1">
<tr>
<td><font size="2" face="Tahoma">Nombre/s: </font></td>
<td><input type="text" maxlength=50 size="25" name="Tnom"></td>
</tr>
<tr>
<td><font size="2" face="Tahoma">Apellido/s: </font></td>
<td><input type="text" maxlength=50 size="25" name="Tapellido"></td>
</tr>
</table>
</html>
Hola Karlankas como estas; sabes que tu codigo ha dado muy buenos frutos y lo he colocado en un registro de usuario que tiene dos campos nombre y apellido; te consulto para ver si puede ser que el mismo codigo compruebe ambos campos el campo nombre y el campo apellido.!
Gracias y saludos;
Gerardo.!