【发布时间】:2016-03-03 04:05:07
【问题描述】:
我试图在每 69 个字符后在文本区域中添加换行符。我不想在中间插话。如果拆分出现在单词中间,则取出整个单词并放入下一行。例句如下:
var sample_txt = "I THOUGHT IT WAS A SIMPLE CONCEPT \nAND DIDN'T FEEL CODE WAS REQUIRED. THE ANSWERS SO FAR SEEM TO HAVE UNDERSTOOD MY EXPLANATION AND SO I AM TRYING THEIR SOLUTIONS NOW. IF I DON'T HAVE ANY JOY I'LL POST SOME CODE. MY IMPLEMENTATION IS ACTUALLY MUCH MORE COMPLEX \nI THOUGHT IT WAS A SIMPLE CONCEPT AND DIDN'T FEEL CODE WAS REQUIRED. THE ANSWERS SO FAR SEEM TO HAVE UNDERSTOOD MY EXPLANATION AND SO I AM TRYING THEIR SOLUTIONS NOW. IF I DON'T HAVE ANY JOY I'LL POST SOME CODE. MY IMPLEMENTATION IS ACTUALLY MUCH MORE COMPLEX";
$(document).on('blur', 'TEXTAREA', function () {
var arr_lines = sample_txt.split('\n'),
char_limit = 69,
txt_val = [];
for(var i = 0; i < arr_lines.length; i++){
if(arr_lines[i].length > char_limit){
var patern = new RegExp('(.{' + (char_limit-1) + '})', 'gi'),
arr_txt = arr_lines[i].replace(patern, "$1\n");
$.each(arr_txt.split('\n'), function(i,vl){
txt_val.push(vl.trim());
});
}else{
txt_val.push(arr_lines[i].trim());
}
}
this.value = txt_val.join('\n');
});
字符串还包含用户输入的换行符。我是基于 '\n' 拆分它们,然后计算字符并在字符超过限制时再次拆分它们。输出应该如下:
I THOUGHT IT WAS A SIMPLE CONCEPT
AND DIDN'T FEEL CODE WAS REQUIRED. THE ANSWERS SO FAR SEEM TO HAVE
UNDERSTOOD MY EXPLANATION AND SO I AM TRYING THEIR SOLUTIONS NOW. IF
I DON'T HAVE ANY JOY I'LL POST SOME CODE. MY IMPLEMENTATION IS
ACTUALLY MUCH MORE COMPLEX
I THOUGHT IT WAS A SIMPLE CONCEPT AND DIDN'T FEEL CODE WAS REQUIRED.
THE ANSWERS SO FAR SEEM TO HAVE UNDERSTOOD MY EXPLANATION AND SO I
AM TRYING THEIR SOLUTIONS NOW. IF I DON'T HAVE ANY JOY I'LL POST
SOME CODE. MY IMPLEMENTATION IS ACTUALLY MUCH MORE COMPLEX
我在 stackoverflow.com 上查看了一些示例,但我发现的大多数示例,它们只是将字符限制在一行中。他们没有把这个词放在下一行。
请提出建议。
【问题讨论】: