Javascript 将文字换行
我使用以下代码包装长文本,用户在文本区域中输入用于评论:Javascript 将文字换行,javascript,jquery,Javascript,Jquery,我使用以下代码包装长文本,用户在文本区域中输入用于评论: function addNewlines(comments) { var result = ''; while ($.trim(comments).length > 0) { result += comments.substring(0,70) + '\n'; comments = comments.substring(70); } return result; } 问题显示在下面的屏幕截图中。有
function addNewlines(comments) {
var result = '';
while ($.trim(comments).length > 0) {
result += comments.substring(0,70) + '\n';
comments = comments.substring(70);
}
return result;
}
问题显示在下面的屏幕截图中。有没有办法解决这个问题?我们是否可以使用lastindexof(“”)
方法获取子字符串中的最后一个空格以逻辑方式解决此问题?有人能修改这个小代码使其正确吗
尝试以下方法之一:
换行:不换行代码>
wordwrap:break-word
它可能会解决您的问题嗨,只需在文本区域应用一些css,如
style="word-wrap: break-word;"
尝试在CSS中使用
wordwrap:break-word
。wordwrap
属性深受浏览器(甚至IE 5.5+)的支持。更多信息请点击此处:
示例用法:我认为通过CSS包装文本是一个更好的解决方案,但是这里有一个链接可能会有所帮助
顺便说一句,我记得有一个JQuery插件,它也可以用来包装google文本 上述方法仅在99%的时间内有效。这是唯一一个100%适合我的:
我使用此css代码在Torch浏览器中显示,它可以正常工作 我试过
wordwrap:break-word;溢出:省略号代码>等,但不起作用
#xxx{
width: 750px;
word-break: break-word;
}
在寻找使用regex和其他实现的完美解决方案之后。我决定改正我自己的错误。它不是完美的,但我的情况下工作得很好,也许它不能正常工作,当你有你的所有文本在大写
函数breaktextly(文本、限制、断点){
变量部分=文本分割(“”);
var行=[];
文本=部分[0];
parts.shift();
while(parts.length>0){
var newText=`${text}${parts[0]}`;
如果(newText.length>限制){
line.push(`${text}\n`);
断点--;
如果(断点===0){
线。推(部件。连接(“”));
打破
}否则{
文本=部分[0];
}
}否则{
文本=新文本;
}
parts.shift();
}
如果(lines.length==0){
返回文本;
}否则{
返回行。连接(“”);
}
}
var mytext='这是我的长文本,可以分成多行大小';
log(breaktextnessly(mytext,20,3))代码>我遇到了同样的问题,我使用下面的函数解决了它
function wordWrap(message, lineSize, breakPoint){
let wordsArr = message.split(" "),
wordsLen = wordsArr.length,
finalMsg = "",
linesArr = [""],
currLine = 0;
for(let i=0; i< wordsLen; i++){
if(linesArr[currLine].length + wordsArr[i].length > lineSize){
currLine +=1;
linesArr[currLine] = wordsArr[i] + " ";
} else {
linesArr[currLine] += wordsArr[i] + " ";
}
}
let linesLen = linesArr.length;
for(let i=0; i<linesLen; i++){
finalMsg += linesArr[i] + breakPoint;
}
return finalMsg.trim();
}
函数换行符(消息、行大小、断点){
让wordsArr=message.split(“”),
wordsLen=wordsArr.length,
finalMsg=“”,
linesArr=[“”],
currLine=0;
for(设i=0;ilineSize){
currLine+=1;
linesArr[currLine]=单词sarr[i]+“”;
}否则{
linesArr[currLine]+=wordsArr[i]+“”;
}
}
设linesLen=linesArr.length;
对于(设i=0;i为什么不能将其放入一个具有设置宽度的元素中,并让浏览器为您处理换行操作?Java标记不属于此处。请尝试对文本区域使用对齐css样式,但css并不适用于所有区域browsers@tina我想你是说“特定的CSS”?CSS适用于所有浏览器;)这就是重点:P你能告诉我在用示例编辑的jquery自定义csssI中把这些设置放在哪里吗?但是,它不能保证文本的格式语法正确。@tina你可以研究并尝试实现这个解决方案。尝试过使用css不使用css,但这再次给了连续字符en的问题像HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH(没有连字符),呃?!wrap
只有这两个值normal | break word
)嘿,谢谢,这很管用,但是对于一些大写字母,它会破坏我页面的对齐,也不会给我整句话,它会剪切一些最后的单词。注意,如果您使用的是.svg
,它不支持自动文本包装,可能需要“手动”包装文本(通过javascript)因此,如何在javascript中具体实现这一点是一个值得思考的问题。