29/04/2003, 11:11
|
| Moderador extraterrestre | | Fecha de Ingreso: diciembre-2001 Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses Puntos: 61 | |
125.- Contar caracteres iguales seguidos en un input P.-Cómo saber si han rellenado un input con varios caracteres iguales? R.-Por medio de este script: Tema: Formularios Código PHP: <html> <head> <title>Contando letritas</title> <script> //Script original de KarlanKas para Forosdelweb.com record=0; igual=1; var letraRecord var b=0 var letra="" function comprobar(esto){ for (a=1;a<esto.length;a++){ if (esto.charAt(a)==esto.charAt(b)){ igual=igual+1; letra=esto.charAt(a);} else{ if(igual>record){record=igual;letraRecord=letra} igual=1 } b=a } if(igual>record){record=igual;letraRecord=letra} if (record>1){alert("La letra que más se repite es la "+letraRecord+" que aparece seguida "+record+" veces.")} else {alert("Ninguna letra se repite seguida");} } </script> </head> <body> <form action="javascript:alert('HOLAA!!')" method="post" name="formuario" id="formuario"> <input type="text" name="caja" size="130" onblur="comprobar(this.value)"> </form> </body> </html> Dernuke propone una versión usando expresiones regulares y propone algún variante:
Código:
<html>
<head>
<title>Contando letritas</title>
<script>
// por derkeNuke
function comprobar(str) {
var res=str.match(/([a-z]){1}\1+/gi);
mensaje="Las repeticiones de letras seguidas son: \r";
for(a=0; a<res.length; a++)
mensaje+="- "+res[a].substring(0,1)+" "+res[a].length+" veces.\r";
alert(mensaje);
// si queremos ordenar el resultado de mayor a menor repeticion:
res.sort( function(a,b) {
if(a.length>b.length) return -1;
else if(a.length==b.length) return 0;
else return 1;
} );
mensaje="Las repeticiones de letras seguidas ya ordenadas son: \r";
for(a=0; a<res.length; a++)
mensaje+="- "+res[a].substring(0,1)+" "+res[a].length+" veces.\r";
alert(mensaje);
}
</script>
</head>
<body>
<form action="javascript:alert('HOLAA!!')"
method="post"
name="formuario"
id="formuario">
<input type="text"
name="caja"
size="130"
value="eqewwqFaaaasscccFasaeqw"
onblur="comprobar(this.value)">
</form>
</body>
</html>
__________________ Cómo escribir
No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
Última edición por KarlanKas; 02/08/2005 a las 07:45 |