Ver Mensaje Individual
  #29 (permalink)  
Antiguo 30/10/2014, 23:16
Avatar de HackmanC
HackmanC
 
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Contar cantidad de oraciones y parrafos en textarea

Hola,

Cita:
Iniciado por rodrypaladin Ver Mensaje
...
El problema surge en que si pego un texto en el text area, el usuario no ha generado ningún \n por lo cual no contabiliza ningún tipo de salto de linea.
...
Cita:
Iniciado por rodrypaladin Ver Mensaje
...
El problema surge en que si pego un texto en el text area, el usuario no ha generado ningún \n por lo cual no contabiliza ningún tipo de salto de linea.
Cita:
Iniciado por rodrypaladin Ver Mensaje
con mis ids ha quedado así

Código Javascript:
Ver original
  1. function copypasteRaton() {
  2.  
  3.     setTimeout(mostrarFilas, 0);
  4.     }
  5.  
  6.  
  7. function mostrarFilas() {
  8.     var texto = document.getElementById("output").value;
  9.     var lineas = document.getElementById("oraciones");
  10.  
  11.     if (texto.match(/(\r\n|\n|\r)[a-z0-9¿!\-\*]+/gi) == null) { lineas.innerHTML = 1; return; }
  12.  
  13.     lineas.innerHTML = texto.match(/(\r\n|\n|\r)[a-z0-9¿!\-\*]+/gi).length+1;
  14.     }

pero pasa lo mismo, al pegar no cuenta el total de las lineas, sino solamente 1, y los enventos los he puesto en el textarea por supuesto
No creo que las vaya a contabilizar de esa forma, el problema, como indicaste al principio es que no hay saltos de línea, el navegador los calcula conforme sea necesario para no desplegar una barra de scroll horizontal.

Por ejemplo, en el parrafo anterior en este mismo mensaje no hay ningún salto de línea, yo nunca presioné la tecla enter, y el navegador no incrustó los saltos de línea tampoco. Simplemente cada vez que tiene que desplegar un texto vuelve a calcular en base al tamaño de letra y el kerning de la fuente la cantidad de líneas.

El algoritmo para calcular eso es realmente complejo basado en la métrica de la fuente que se está usando.

Pero posiblemente, como una base podrías usar algo así:
Aunque evidentemente no es exacto y las líneas están separadas por el caracter "|" al final aunque realmente es un vector.

http://jsfiddle.net/046jtcyz/

Saludos,

ps:

Por cierto, no es
aconsejable que insertes
los saltos de línea,
porque se miraría
como este parrafo
en una pantalla donde le
cabe mas texto. --> Allá arriba quedo un montón de espacio vacío seguramente.

O sino se miraría
de esta

forma donde hay
mucho

menos espacio
que el
original. --> Las líneas se cortaron tanto en donde no cabían como donde insertaste los saltos.

Última edición por HackmanC; 30/10/2014 a las 23:29 Razón: ps