JavaScript - aplicación en mi web para contar palabras y caracteres en tiempo real

 
Vista:
Imágen de perfil de sergio
Val: 3
Ha aumentado su posición en 38 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

aplicación en mi web para contar palabras y caracteres en tiempo real

Publicado por sergio (2 intervenciones) el 22/05/2018 07:51:49
Buenos días comunidad,

Estoy desarrollando una pequeña aplicación en mi web para contar palabras y caracteres en tiempo real. La aplicación también te debe de decir la densidad de palabras clave, es decir, cuantas veces se repite una palabra en relación al total del artículo, en un porcentaje.

La pregunta es si alguien sabe o conoce algún script en javascript que funcione bien, ya que todos los que he visto, tanto en español como en inglés no trabajan correctamente:

- No diferencian entre mayúsculas y minúsculas.
- No permiten identificar keyword de dos, tres o más palabras.

Si alguien sabe de algún script o conoce a alguien que pudiera desarrollarlo le estaría agradecido. :-D

Un saludo y graciassss!!
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
Imágen de perfil de xve
Val: 3.162
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

aplicación en mi web para contar palabras y caracteres en tiempo real

Publicado por xve (2101 intervenciones) el 22/05/2018 15:40:40
Hola Sergio, exactamente que quieres que haga el código?

Por ejemplo, si quieres que te cuente las palabras que que hay en el texto con las repeticiones que tiene cada una diferenciando las mayúsculas y minúsculas, seria algo así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<scrtip>
cadena="La casa azul esta al lado de la otra casa azul";
 
arrayPalabras=cadena.trim().split(/\s+/);
 
resultado={};
arrayPalabras.forEach(function(palabra){
    if(resultado[palabra]) {
        resultado[palabra]++;
    }else{
        resultado[palabra]=1;
    }
});
console.log(resultado);
</script>

Lo que no entiendo muy bien, es que quieres decir con "keyword de dos, tres o más palabras"
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 sergio
Val: 3
Ha aumentado su posición en 38 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

aplicación en mi web para contar palabras y caracteres en tiempo real

Publicado por sergio (2 intervenciones) el 22/05/2018 19:27:46
Mira, te pego el código que tengo!! es algo así, pero que diferencia entre maúsculas y minúsculas. Las keyword de dos, tres o más palabras" quiere decir, que puedes escribir no solo palabras, si no frases cortas de dos o tres palabras: Por ejemplos:

"El perro de Sergio" es grande, casi tan grande como el de Juan, a parte "el perro de sergio" mola jeje... como ves, el perro de sergio se escribe dos veces.

Este es el código que tengo por ahora:

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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<html>
	<head>
	</head>
	<body>
		<p>
<strong>SEO Keyword:</strong>
<br>
<input type="text" name="textfield" id="textfield" oninput="myFunction()">
</p>
<p>
<strong>Webpage Text:</strong>
<br>
<textarea name="textarea" cols="20" rows="5" id="textarea" oninput="myFunction()"></textarea>
</p>
<hr>
<p>
<span id="containsText"><strong>Does not contain keyword.</strong></span>
<br>
<span id="densityText"><strong>Keyword Density ((# of times keyword appears / total words) * 100):</strong> ---</span>
<br>
<span id="lengthText"><strong>Array Length:</strong> ---</span>
</p>
 
 
<script>
function myFunction() {
 
	var numberOfTimesKeyword = 0;
 
	// Prep the text ////////////////////////////////////
	// Remove all characters but a-z AND 0-9 AND spaces
	var pageText = textarea.value.replace(/[^\w\s]/gi, '');
 
	// Remove double spaces
	pageText = pageText.replace(/\s\s+/g, ' ');
 
	// Trim beginning and ending spaces
	pageText = pageText.trim();
	// End: Prep the text ////////////////////////////////////
 
	// Make textarea values into array
	var pageTextArray = pageText.split(/\s+/);
 
	// Go through array and find out how many times the keyword appears
	for(var i in pageTextArray) {
 
		if (pageTextArray[i] == textfield.value) {
			numberOfTimesKeyword++;
		}
 
	}
 
	// Find keyword density
	var keywordDensity = (numberOfTimesKeyword / pageTextArray.length) * 100;
 
	 if (numberOfTimesKeyword > 0) { // The keyword appears at least once
		 containsText.innerHTML = "The keyword appears <strong>" + numberOfTimesKeyword + "</strong> time(s).";
	 } else {
	 	containsText.innerHTML = "<strong>Does not contain keyword.</strong>";
	 }
 
	 densityText.innerHTML = "<strong>Keyword Density ((# of times keyword appears / total words) * 100):</strong> " + Math.ceil(keywordDensity) + "%";
	 lengthText.innerHTML = "<strong>Array Length:</strong> " + pageTextArray.length;
}
		</script>
	</body>
</html>

Espero que esto aclare tu duda.

Muchas gracias por tu respuesta xve

Un saludo!!
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