Comunidad de diseño web y desarrollo en internet online

Contar palabras de un textArea

Citar            
MensajeEscrito el 28 Sep 2012 07:28 pm
Hola amigos, necesito contar la cantidad de PALABRAS, no letras... de un textarea, no tengo ni la menor idea de como hacerlo.. y tampoco he encontrado mayor informacion acerca de esto, agradezco cualquier info o ejemplo acerca del tema, Gracias. :wink:

Por amendez

38 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 28 Sep 2012 09:12 pm
Uff...lo hacia en C eso, la verdad no se como hacerlo en AS3 pero me acuerdo que lo que hacia era usar los espacios para saber cuando empezaba y terminaba una palabra, nose si te ayuda mucho la data pero es por donde empezaria, buscaria como hacer un recorrido de texto letra por letra, y cada vez que hay un espacio ya tengo una (descartando dos espacios seguidos) y hay que agregar la ultima cuando encuentre el fin de carrera

Por plancha

33 de clabLevel



 

chrome
Citar            
MensajeEscrito el 29 Sep 2012 01:42 pm
Hola, encontre esta solucion y cuenta bien, dependiendo si al final le doy espacio en la ultima palabra , mi pregunta es , como podria convertir wordsNumber, en un tipo INT para poder realizar operaciones con el.. Gracias =D

package Classes
{
import flash.text.TextField;

public class CountWords
{
private var wordsArray:Array = new Array(); //Array donde se almacenan las palabras.
private var wordsNumber:String; //Aqui se guarda el número de palabras.

public function count(target:TextField):String //Donde "target" es el nombre de instancia del campo de texto
{
wordsArray = target.text.split(" "); //Lo que hace "split()" es dividir un String, usando como separador el contenido de los parentesis.
wordsNumber = new String(wordsArray.length - 1); //Restamos 1 al numero de palabras, ya que las arrays comienzan a contar desde 0.

return wordsNumber + " Words";
}
}
}

Por amendez

38 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 29 Sep 2012 01:48 pm
numero= int(wordsNumber);

Por amendez

38 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 29 Sep 2012 01:53 pm
faltaria lo q tu dices , descartar espacios seguidos

Por amendez

38 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 29 Sep 2012 06:19 pm
hace mucho que no uso AS3, yo lo haría con split...

Código ActionScript :

var frase:String = "Hola @amendez, espero te pueda ayudar";

function cuentaPalabras(fraseN:String){
   var cantPalabras = fraseN.split(" ");
   trace(cantPalabras.length);
}

cuentaPalabras(frase);

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

chrome
Citar            
MensajeEscrito el 01 Oct 2012 09:22 pm
pero como puedo validar . que no me cuente espacios como palabras... osea si tengo
1 2 "contaria tres espacios al tener doble espacio"... como puedo hacer esto con la funcion split?

Por amendez

38 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 01 Oct 2012 10:34 pm
Si creas otra variable?, cuando lo hacia me acuerdo que iba recorriendo letra por letra con dos punteros, uno por detras del otro y los iba comparando constantemente, la verdad que me cuesta sacarme esa manera, as3 cambia mucho pero por lo que entiendo del codigo se puede hacer algo parecido. Por ejemplo:

Código :

public function count (target:TextField):String
{

wordsArray = target.text.split(" ");
var palabra:string = wordsArray[(wordsArray.length - 1)];

if (wordsArray[wordsArray.length] != palabra)
        wordsNumber = new String(wordsArray.length - 1);

}


Nose si estara bien escrito, sin el flashdevelop que me tira los errores y voy corrigiendo en el momento voy para atras jaja, pero la idea es justamente crear una variable donde guardas la "palabra" anterior, y antes de sumar, comparar que esa palabra con la nueva sean distintas, ya que solo separa entre espacios (por lo que siempre te va a separar palabras con puntuacion) y evita que haya dos o mas espacios seguidos.

Espero te sea util!!, cualquier cosa avisa, sino.

Por plancha

33 de clabLevel



 

chrome
Citar            
MensajeEscrito el 01 Oct 2012 10:39 pm
Otra cosa, porque guardas el numero de cantidad de palabras en string si despues lo queres pasar a un entero?, no seria mas facil directamente laburar con un entero y te evitas la conversion?.

private var CantPalabras:int = 0;

Public funcion count(target:TextField):Int
{
....
....
....
if (wordsArray[wordsArray.length] != palabra)
CantPalabras++;

return (CantPalabras);
}

Despues si lo que queres poner es CantPalabras en un campo de texto pones:

texto.text = CantPalabras.toString() + " fueron las palabras introducidas";

Por plancha

33 de clabLevel



 

chrome
Citar            
MensajeEscrito el 02 Oct 2012 12:04 am

Código ActionScript :

function wordCount(p_string:String):uint {
   if (p_string == null) { return 0; }
   return p_string.match(/\b\w+\b/g).length;
}
trace(wordCount("hola hola hola"));
trace(wordCount("hola  hola    hola"));//doble espacio

En ambos imprime 3

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

chrome
Citar            
MensajeEscrito el 02 Oct 2012 01:26 pm
mm intente aplicarlo , pero nada , siempre retorna 9, quizas estoy convirtiendo mal mi textArea a string.. podrias darme un ej de como pero con un text area, creo q .match no esta disponible para textArea

Por amendez

38 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 02 Oct 2012 05:15 pm

Código ActionScript :

trace(wordCount(miTextArea.text));


La función no le cambies nada, está bien así....

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

chrome
Citar            
MensajeEscrito el 09 Oct 2012 09:41 pm
sirve perfecto, pero una pregunta, si solo quiero "No contar" los espacios como palabras, pero si quiero contar caracteres tales como( # " !) , que debo cambiar o agregar a tu funcion?

Por amendez

38 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.