2010-12-01 19 views
8

Tengo un cuadro de texto que utilizo para insertar cierta información. Quiero insertar un carácter de línea nueva cada 200 caracteres usando jQuery o JavaScript.Cómo insertar un carácter de línea nueva después de cada 200 caracteres con jQuery

Por ejemplo:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 

En este ejemplo, quiero insertar una nueva línea chracter cada 200 caracteres. ¿Cómo puedo hacer esto?

+0

¿Por qué usted está tratando de hacer esto? –

Respuesta

17

Romper la cadena cada 200 caracteres, añadir una nueva línea, y repetir este proceso con la cadena restante:

function addNewlines(str) { 
    var result = ''; 
    while (str.length > 0) { 
    result += str.substring(0, 200) + '\n'; 
    str = str.substring(200); 
    } 
    return result; 
} 
+0

Gracias señor buena respuesta –

+1

Podría mejorarse dando más opciones y utilizando guiones al comenzar una nueva línea. Ver mis mejoras en mi [comparación] (http://jsfiddle.net/tLp7P/) –

1

Si el usuario está entrando en ese texto se puede hacer lo siguiente:

  1. Implementar evento KeyDown y cada vez que llegue a la cuenta 200 ... insertar un carácter de nueva línea y añadir de nuevo .

  2. Si lo obtiene de la base de datos, justo antes de establecer el valor, lea esa cadena e inserte un nuevo carácter de línea manualmente.

2

Probar esta función es simplemente javascript. Toma la cadena y el número de caracteres para romper después.

function addBreaks(s,c) { 
    var l = s.length; 
    var i = 0; 
    while (l > c) { 
     l = l-c; 
     i=i+c; 
     s = s.substring(0,c)+"\n"+s.substring(c); 
    } 
    return s; 
} 
var a=' aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'; 

addBreaks(a,200); 
1
$("#text").keyup(function()//Detect keypress in the textarea 
    { 
     var text_area_box =$(this).val();//Get the values in the textarea 
     var max_numb_of_words = 200;//Set the Maximum Number of chars 
     var main = text_area_box.length*100;//Multiply the lenght on words x 100 

     var value= (main/max_numb_of_words);//Divide it by the Max numb of words previously declared 

     if(text_area_box.length >= max_numb_of_words) { 
      //add break 
     } 
     return false; 
     }); 
14

Puede hacer esto es sólo una línea de código.

var newStr = str.replace(/(.{200})/g, "$1\n") 

funciona bien si quieres prefijos o sufijos en cada línea, así

var newStr = str.replace(/(.{200})/g, "prefix- $1 -postfix\n") 
+4

Muy bonito de una sola línea. Buen trabajo. –

+0

'str.replace (/. {200}/g," $ 0 \ n ")' hace lo mismo. – Titus

Cuestiones relacionadas