Foros del Web » Programando para Internet » Javascript »

¿Cómo contar texto de un textarea?

Estas en el tema de ¿Cómo contar texto de un textarea? en el foro de Javascript en Foros del Web. Hola, saben cómo puedo contar cuántas veces aparece un texto entre estos paréntesis: {****} ? Por ejemplo un texto sería el siguiente: " habia una ...
  #1 (permalink)  
Antiguo 24/01/2002, 11:45
Avatar de Sir Matrix  
Fecha de Ingreso: octubre-2000
Ubicación: Dentro de mi cabeza. ono?
Mensajes: 1.264
Antigüedad: 23 años, 6 meses
Puntos: 3
¿Cómo contar texto de un textarea?

Hola, saben cómo puedo contar cuántas veces aparece un texto entre estos paréntesis: {****} ?

Por ejemplo un texto sería el siguiente:

" habia una vez{|^|} ijsijadlk aksj {< >}ksadj {--O} jshjd {/0/} sjhdjhj."

Entonces necesito una función en JS que cuente cuántas veces aparece un texto entre paréntesis. En el texto de arriba habían 4.

Está bastante complicado creo yo pero quizás se pueda hacer.

Saludos!

<embed width="259" height="80" src="http://www.artereal.com/firma.swf">
  #2 (permalink)  
Antiguo 24/01/2002, 12:30
 
Fecha de Ingreso: diciembre-2001
Mensajes: 150
Antigüedad: 22 años, 4 meses
Puntos: 1
Re: ¿Cómo contar texto de un textarea?

Hola Sir Matrix:

Lo que te interesa es saber cuantas veces aparece un texto específico o determinado entre las paréntesis, o simplemente cuantas veces aparece cualquier texto entre paréntesis ?

Korrikalari
  #3 (permalink)  
Antiguo 24/01/2002, 13:32
Avatar de Sir Matrix  
Fecha de Ingreso: octubre-2000
Ubicación: Dentro de mi cabeza. ono?
Mensajes: 1.264
Antigüedad: 23 años, 6 meses
Puntos: 3
Re: ¿Cómo contar texto de un textarea?

hola Korrikalari. Lo que me interesa es que cuente cuántas veces aparece cualquier texto entre esos paréntesis.

saludos
  #4 (permalink)  
Antiguo 24/01/2002, 17:50
Avatar de mikel_gomez  
Fecha de Ingreso: febrero-2001
Mensajes: 482
Antigüedad: 23 años, 2 meses
Puntos: 3
Re: ¿Cómo contar texto de un textarea?

Sir Matrix :

Fácil no ha sido, pero creo que está conseguido:

<pre>&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Expresiones regulares&lt;/title&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
function contar(texto) {
subtxt = texto.split('{') ;
er = /^[^}]*}[^}]*$/ ;
for(j=1; j&lt;subtxt.length; j++)
if (!er.test(subtxt[j])) {
alert('Llaves mal balanceadas');
return 0 ;
}
alert(subtxt.length-1);
return subtxt.length-1;
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;form id=&quot;frm&quot;&gt;
&lt;textarea id=&quot;texto&quot; style=&quot;width: 640px; height: 400px;&quot;&gt;
habia una vez{|^|} ijsijadlk aksj {&lt; &gt;}ksadj {--O} jshjd {/0/} sjhdjhj
&lt;/textarea&gt;
&lt;br /&gt;
&lt;input type=&quot;button&quot; value=&quot;Contar ocurrencias entre llaves&quot;
onclick=&quot;contar(this.form.texto.value)&quot; /&gt;
&lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt; </pre>

Espero tus comentarios.
Saludos.

<style>.t{font: 8pt verdana; text-decoration: none; color: black;}</style><hr><span class="t"><a href="mailto:[email protected]" class="t" style="font: 10pt;">Mikel Gómez</a><br>Hay que aprender mucho para saber poco.</span>
  #5 (permalink)  
Antiguo 24/01/2002, 20:33
Avatar de Sir Matrix  
Fecha de Ingreso: octubre-2000
Ubicación: Dentro de mi cabeza. ono?
Mensajes: 1.264
Antigüedad: 23 años, 6 meses
Puntos: 3
Re: ¿Cómo contar texto de un textarea?

Muchas gracias Mikel Gómez!!!! te voy a hacer una estatua ;) . Yo no habría sabido cómo hacerlo, ahora sólo me resta adaptarlo a lo que necesito, y te pondré en los créditos de la página (que corresponde a mi trabajo de título).

Una ultima pregunta: ¿me podrías decir (si no te molesta) qué función cumple esta línea del código?

er = /^[^}]*}[^}]*$/ ;

Nos vemos, y cualquier cosa que necesites cuenta conmigo.
  #6 (permalink)  
Antiguo 25/01/2002, 02:13
 
Fecha de Ingreso: diciembre-2001
Mensajes: 150
Antigüedad: 22 años, 4 meses
Puntos: 1
Re: ¿Cómo contar texto de un textarea?

Mikel:

Simplemente, Chapeau !!!

Korrikalari
  #7 (permalink)  
Antiguo 25/01/2002, 15:48
Avatar de mikel_gomez  
Fecha de Ingreso: febrero-2001
Mensajes: 482
Antigüedad: 23 años, 2 meses
Puntos: 3
Re: ¿Cómo contar texto de un textarea?

Voy a intentar explicar lo más importante de la función:

Se convierte el texto en un array de subcadenas usando el método split() y utilizando el carácter &quot;{&quot; como separador.

En cada subcadena, para que todo cuadre, debe existir un único carácter &quot;}&quot;. Para comprobar esto, utilizo la siguiente orden:

<pre> if (er.test(subtxt[j]))

&quot;Si la subcadena subtxt[j] cumple la expresión
regular indicada en la variable er.&quot; </pre>
Si alguna de las subcadenas no cumple la expresión regular, se entiende que el texto no está bien formado.

La expresión regular es una especie de máscara o plantilla:

er = /^[^}]*}[^}]*$/ ;

Dónde:

<pre> / / - Delimita la expresión regular.
^ $ - Comprueba el texto desde el principio (^) al final ($).
[^}]* - Coge todo los caracteres mientras que no se encuentre &quot;}&quot;
} - Debe haber un carácter &quot;}&quot;
[^}]* - Sigue cogiendo caracteres mientras que no encuentre otro &quot;}&quot;. </pre>
No creo que sea fácil ni explicarlo ni entenderlo, pero espero que ayude algo.

Hay mucha información en internet sobre expresiones regulares. Si te interesa, entre otros enlaces, puedes mirar en: <a href='ir.asp?http://developer.netscape.com/docs/manuals/communicator/jsguide/regexp.htm' target='_blank'>http://developer.netscape.com/docs/manua...</a>.

Saludos.

<style>.t{font: 8pt verdana; text-decoration: none; color: black;}</style><hr><span class="t"><a href="mailto:[email protected]" class="t" style="font: 10pt;">Mikel Gómez</a><br>Hay que aprender mucho para saber poco.</span>
  #8 (permalink)  
Antiguo 26/01/2002, 10:01
Avatar de Sir Matrix  
Fecha de Ingreso: octubre-2000
Ubicación: Dentro de mi cabeza. ono?
Mensajes: 1.264
Antigüedad: 23 años, 6 meses
Puntos: 3
Re: ¿Cómo contar texto de un textarea?

gracias denuevo Mikel, ahora entiendo un poco más el código, no completamente pero al menos como funciona.

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:03.