2013-07-27 90 views
4

我有一個很長的字符串。如何在每80個字符後插入換行符

我想在每80個字符後附加<br/>,所以它可以很好地顯示在內部HTML中。

有什麼簡單的方法嗎?

+1

使用_String.substring()_...你可以閱讀它[這裏](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substring)。 – jahroy

+0

你可以用css做嗎? –

+0

似乎你試圖用javascript代替css – Saksham

回答

1

0,80'<br />'

console.log("google is very fast".match(new RegExp(".{0,1}", "g")).join('is')); 
+0

我很好奇你爲什麼這樣做你的例子。 爲什麼在你的例子中你使用'0,1'和'is',然後添加指令來替換它們爲'0,80'和'
',*而不是隻使用'0.80'和'
'這個例子本身?* –

+0

@ chris-l我實際上並沒有記得。但我想我可能會嘗試我的自我並直接在那裏粘貼。 –

3

更換0,1和join( '是')這裏有學術版(這也是faster than regex) :

function fold(input, lineSize, lineArray) { 
    lineArray = lineArray || []; 
    if (input.length <= lineSize) { 
     lineArray.push(input); 
     return lineArray; 
    } 
    lineArray.push(input.substring(0, lineSize)); 
    var tail = input.substring(lineSize); 
    return fold(tail, lineSize, lineArray); 
} 

用法:

var arrayOfLines = fold(longString, 80); 
var foldedString = arrayOfLines.join('<br/>'); 

另一件事,是很酷這種方法:你可以很容易地在包裝的空白。

這是一個fiddle這樣做。

3

試着這麼做:

yourString = yourString.replace(/(.{1,80})/g, '$1<br/>') 

你也可以只設置文本的包含元素的寬度是80em。 (它不適合正好 80個字符,因爲一個em是字母m的寬度,所以你可能要設置一個低一點)

+0

它不適合80em ...除非,當然,他使用等寬字體(你是否複製我的答案?:P jk,我知道是直截了當的答案) –

+0

@chris這就是我在我的答案中所說的。也沒有我沒有複製你的答案,我從iPhone回答,所以我看不到新的答案,因爲他們發佈,我輸入緩慢':P' – Doorknob

+0

@chris - 它不是複製時,有一種簡單的方法來做到這一點。 – jahroy

相關問題