我發現的大多數wordwrap函數都綁定到css和/或瀏覽器dom。 我正在JavaScript環境(犀牛)中工作,需要找到或設計一個更好的單詞包裝,在給定的行長度值之前打破空白。 我現在的解決方案只是搜索給定字符前的最後一個空格,然後剪切左側,將其存儲爲一行輸出(在數組中返回)。重複,直到沒有更多的文字。空白的Javascript-only wordwrap函數?
希望有人看到優雅的東西。
我發現的大多數wordwrap函數都綁定到css和/或瀏覽器dom。 我正在JavaScript環境(犀牛)中工作,需要找到或設計一個更好的單詞包裝,在給定的行長度值之前打破空白。 我現在的解決方案只是搜索給定字符前的最後一個空格,然後剪切左側,將其存儲爲一行輸出(在數組中返回)。重複,直到沒有更多的文字。空白的Javascript-only wordwrap函數?
希望有人看到優雅的東西。
你可以寫類似:
var wordwrapped = original.trim().replace(/(\S(.{0,78}\S)?)\s+/g, '$1\n');
將與\n
取代\s+
後,至少一,特技的最八十,優選升至-AS-許多-AS-可能的字符。 (注意:如果連續超過八十個字符沒有空格,那麼在它們之前和之後將會有一個換行符,但是在它們內部不會發生換行。)
我喜歡使用'replace'。我曾經玩過'split',但是爲'exec'而定居。 – 2012-07-26 18:29:10
正則表達式真的是要走的路。 /.{0,79}(?:\s|$)/g
將抓取80個以字符或文件末尾結尾的最長行。多次撥打exec
會提取每一行。
var text = "";
var regex = /.{0,79}(?:\s|$)/g;
var lines = [];
var line;
while (line = regex.exec(text)) {
lines.push(line);
}
沒有託管在瀏覽器中。 – 2012-07-26 18:27:03