JavaScript - Funcion 3 en 1 , carcateres, blancos y palabras (y no, no es la santisima trinidad ;)

   
Vista:

Funcion 3 en 1 , carcateres, blancos y palabras (y no, no es la santisima trinidad ;)

Publicado por Jose Gabea jose.gabea.torres@gmail.com (2 intervenciones) el 17/12/2014 22:22:07
Como implementar, en una misma funcion de JS,para que devuelva el número de caracteres, espacios en blanco y numero de veces que aparece cada palabra pasandole el ID de un campo textarea.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Funcion 3 en 1 , carcateres, blancos y palabras (y no, no es la santisima trinidad ;)

Publicado por Jose Gabea (2 intervenciones) el 17/12/2014 23:06:21
Ya lo tengo ...casi. A ver que os parece....Lo que no sé es como enfocar el tema de contar los espacios en blanco del contenido del textarea y por ahora solo he conseguido contar las palabras (y no el número de apariciones de cada palabra)

En html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<html>
<head>
<link rel="stylesheet" type="text/css" href="estilos.css">
<script type="text/javascript" src="functiones_usadas.js"></script>
</head>
 
<body>
<FORM ID="form2" ACTION="#">
<TEXTAREA ID="area" COLS=20 ROWS=10>
Texto dentro del área de texto </TEXTAREA><BR>
<INPUT TYPE="button" VALUE="Contar las palabras" onClick="trinidad();">
</FORM>
   </body>
</html>

y en functiones_usadas.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
trinidad() {
  // Función que nos va a contar el número de caracteres 
  // y de palabras del area de texto de un formulario
 
  // Obtenemos el texto del area.
  textoArea = document.getElementById("area").value;
 
  // El numero de caracteres es su longitud
  numeroCaracteres = textoArea.length;
 
  // Eliminamos los caracteres en blanco del inicio y del final.
  // Como no tenemos funciones del tipo trim, rtrim y ltrim usamos
  // expresiones regulares
  // El ^ indica principio de cadena
  inicioBlanco = /^ /
  // El $ indica final de cadena
  finBlanco = / $/
  // El global (g) es para obtener todas las posibles combinaciones
  variosBlancos = /[ ]+/g
 
  textoArea = textoArea.replace(inicioBlanco,"");
  textoArea = textoArea.replace(finBlanco,"");
  textoArea = textoArea.replace(variosBlancos," ");
 
  // Creamos un array con las diferentes palabras. Teniendo en 
  // cuenta que la separación entre palabras es el espacio en blanco.
  textoAreaDividido = textoArea.split(" ");
  numeroPalabras = textoAreaDividido.length;
 
  // Mostramos los datos.
  // Tendremos en cuenta si hay que escribir en plural o en singular.
  tC = (numeroCaracteres==1)?" carácter":" caracteres";
  tP = (numeroPalabras==1)?" palabra":" palabras";
 
  alert (numeroCaracteres + tC +"\n" + numeroPalabras + tP);
 
 }


Que pensais como enfocarlo?
Gracias de antemano
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Funcion 3 en 1 , carcateres, blancos y palabras (y no, no es la santisima trinidad ;)

Publicado por xve (1595 intervenciones) el 18/12/2014 11:34:55
Hola Jose, para contar los espacios en blanco, yo lo haria con una expresión regular...

1
espacios=((textoArea.match(/ /g) || []).length);

Coméntanos si te sirve, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar