Aprovecho el hilo para un aspecto que está directamente relacionado:
Intento contar las palabras y caracteres y los muestro, eso lo he conseguido.
Ahora intento aplicar las excepciones, como ya comenté anteriormente:
espacios al empezar la linea, espacios al terminar la linea, y espacios dobles triples o suepriores.. pero eso no lo consigo. pero se ve que no las aplica, pego mi código:
Código Javascript
:
Ver original<html>
<head>
<script type="text/javascript">
function mostrar() {
//cogemos el texto del textarea
var texto = document.getElementById("area").value;
//contamos sus caracteres
var caracteres = texto.length;
//dividimos el texto a una array con el separador ESPACIO
var textoDividido = texto.split(" ");
//contamos los elementos separados, en este caso palabras
var palabras = textoDividido.length;
//insertamos html en las etiquetas carac y palabras
document.getElementById("carac").innerHTML = caracteres;
document.getElementById("palabras").innerHTML = palabras;
/* Ahora tenemos que poner excepciones, como pro ejemplo espacios delante y detrás del texto, o espacios dobles, triples o superiores. */
primerBlanco = /^[ ]+/;
ultimoBlanco = / $/;
variosBlancos = /[ ]+/g;
//Ahora aplicamos las excepciones;
texto = texto.replace(variosBlanco," ");
texto = texto.replace(primerBlanco, "");
texto = texto.replace(ultimoBlanco, "");
var textoTroceado = texto.split(texto, " ");
palabras = textoTroceado.length;
}
</script>
</head>
<body>
<form>
<textarea id="area" onkeyup="mostrar();"></textarea><br/>
Caracteres:<p id="carac">0</p>
Palabras:<p id="palabras">0</p>
</form>
</body>
</html>
He intentado poner los
getElementById("id")inner.HTML = id debajo de los replace, pero en ese caso directamente no muestra los caracteres o palabras, los deja a 0
Un saludo y mil gracias de nuevo.