2013-07-27 1 views
4

У меня очень длинная строка.Как вставить разрыв строки после каждых 80 символов

Я хочу добавить <br/> после каждых 80 символов, чтобы он мог хорошо отображаться во внутреннем HTML-коде.

Есть ли простой способ?

+1

Использование _String.substring() _... Вы можете прочитать о это [здесь] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substring). – jahroy

+0

можно сделать это с помощью css ?? –

+0

кажется, что вы пытаетесь заменить css на javascript – Saksham

ответ

1

заменить 0,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

Вот академическое издание (это также 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

Смежные вопросы