2010-12-01 2 views
8

Ich habe ein Textfeld, das ich zum Einfügen von Informationen verwenden. Ich möchte ein Newline-Zeichen nach jeweils 200 Zeichen mit jQuery oder JavaScript einfügen.Wie ein Newline-Zeichen nach jeweils 200 Zeichen mit jQuery einfügen

Zum Beispiel:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 

In diesem Beispiel möchte ich alle 200 Zeichen eine neue Zeile chracter einzufügen. Wie kann ich das machen?

+0

Warum Sie versuchen, dies zu tun? –

Antwort

17

Brechen Sie die Zeichenfolge nach 200 Zeichen, eine neue Zeile hinzufügen, und wiederholen Sie diesen Vorgang mit dem restlichen string:

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

Thanku sir nette Antwort –

+1

Könnte verbessert werden, indem Sie mehr Optionen geben und beim Start einer neuen Zeile Bindestriche verwenden. Siehe meine Verbesserungen in meinem [Vergleich] (http://jsfiddle.net/tLp7P/) –

1

Wenn der Benutzer ist, dass die Eingabe von Text können Sie folgendes tun:

  1. keydown Ereignis implementieren und wenn Sie die 200 Anzahl erreichen ... eine neue Zeile Zeichen einfügen und wieder anhängen .

  2. Wenn Sie es aus der Datenbank abrufen, lesen Sie diese Zeichenfolge vor dem Setzen des Werts und fügen Sie ein neues Zeilenzeichen manuell ein.

2

Versuchen Sie diese Funktion, es ist einfach JavaScript. Es dauert die Zeichenfolge und die Anzahl der Zeichen, um danach zu brechen.

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

Sie können dies nur eine Zeile Code ist.

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

funktioniert gut, wenn Sie Präfixe oder Postfix auf jeder Zeile wollen auch

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

Sehr schönes Ein-Liner. Gut gemacht. –

+0

'str.replace (/. {200}/g," $ 0 \ n ")' macht das gleiche. – Titus

Verwandte Themen