2010-12-01 358 views
8

我有一個用於插入某些信息的文本框。我想用jQuery或JavaScript在每200個字符後插入一個換行符。如何使用jQuery在每200個字符後插入換行符

例如:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 

在這個例子中,我希望每一個200個字符之後插入一個換行符chracter。我怎樣才能做到這一點?

+0

爲什麼你正在試圖做到這一點? – 2010-12-01 05:39:53

回答

17

每200個字符後打破字符串,添加一個新行,然後用剩下的字符串重複這個過程:

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

Thanku sir很好的回答 – 2010-12-01 07:01:35

+1

可以通過提供更多選項並在開始新行時使用連字符來改進。在我的[比較]中看到我的改進(http://jsfiddle.net/tLp7P/) – 2014-06-05 10:35:05

1

如果用戶正在輸入文本,你可以做到以下幾點:

  1. 實施keydown事件,只要你達到了200個性化......插入新行字符,並再次追加它。

  2. 如果您正在從數據庫中獲取數據,則在設置該值之前先讀取該字符串並手動插入一個新行字符。

2

試試這個功能它只是普通的javascript。它需要將字符串和字符數打破。

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

你可以做到這一點的代碼只有一行。

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

效果很好,如果你想在每一行的前綴或後綴以及

var newStr = str.replace(/(.{200})/g, "prefix- $1 -postfix\n") 
相關問題