Javascript 如何在每80个字符后插入换行符
我有一根很长的绳子 我想在每80个字符后添加Javascript 如何在每80个字符后插入换行符,javascript,Javascript,我有一根很长的绳子 我想在每80个字符后添加,这样它就可以很好地显示在内部HTML中 有什么简单的方法吗?用长字符串替换(/({80})/g,“$1” 检查此处:将0,1替换为0,80,并将('is')与'' console.log("google is very fast".match(new RegExp(".{0,1}", "g")).join('is')); 这是学术版(也是): 功能折叠(输入、线宽、线性阵列){ 线性阵列=线性阵列| |[]; 如果(input.length尝试以下
,这样它就可以很好地显示在内部HTML中
有什么简单的方法吗?用
长字符串替换(/({80})/g,“$1
”代码>
检查此处:将0,1
替换为0,80
,并将('is')与'
'
console.log("google is very fast".match(new RegExp(".{0,1}", "g")).join('is'));
这是学术版(也是):
功能折叠(输入、线宽、线性阵列){
线性阵列=线性阵列| |[];
如果(input.length尝试以下操作:
yourString = yourString.replace(/(.{1,80})/g, '$1<br/>')
yourString=yourString.replace(/(.{1,80})/g,“$1
”)
您还可以将文本包含元素的宽度设置为80em
(它不能正好容纳80个字符,因为em
是字母m
的宽度,因此您可能希望将其设置得更低一些)如果您想要快速解决方案,可以使用以下算法:
功能文本折叠(输入,行大小){
常量输出=[]
让outputCharCount=0
让outputCharsInCurrentLine=0
对于(变量i=0;ilineSize-2){
输出[outputCharCount++]='\n'
outputCharsInCurrentLine=0
}否则{
输出字符当前行++
}
}
返回输出。连接(“”)
}
document.getElementsByTagName('pre')[0]。innerHTML=textFold('0123456789abcdefghijklmnopqrstuvwxyz',10)
键入答案的脚本变体:
导出类FrameworkUtil{
公共静态foldText(文本:字符串,字符数:数字,buildArray:string[]=[])){
如果(文本长度0){
line=line.子字符串(0,idx);
nextIdx=idx;
}
buildArray.push(行);
返回FrameworkUtil.foldText(text.substring(nextIdx)、charCount、buildArray);
}
}
使用String.substring()…你可以阅读它。你能用css来做吗?似乎你想用javascriptyes来取代css。arun我可以用css使用“word wrap:break word;”来做,它不能精确地容纳80em…当然,除非他使用单空格字体(你复制了我的答案吗?:P jk,我知道这是一个简单的答案)@克里斯,这就是我在回答中所说的。也不是,我没有复制你的答案,我是从iPhone上回答的,所以我看不到发布的新答案,我键入slow:P
@chris-当有一种简单的方法来做时,这不是复制。我很好奇你为什么这样做。为什么在你的例子中你使用0,1
而是
,然后添加了指令,用0,80
和
替换它们,而不是仅仅在示例中使用0.80
和
?@chris-l我不记得了。但我想我可能已经试过自己直接粘贴到那里了。
var arrayOfLines = fold(longString, 80);
var foldedString = arrayOfLines.join('<br/>');
yourString = yourString.replace(/(.{1,80})/g, '$1<br/>')
export class FrameworkUtil {
public static foldText(text: string, charCount: number, buildArray: string[] = []) {
if (text.length <= charCount) {
buildArray.push(text);
return buildArray;
}
let line = text.substring(0, charCount);
const lastSpaceRgx = /\s(?!.*\s)/;
const idx = line.search(lastSpaceRgx);
let nextIdx = charCount;
if (idx > 0) {
line = line.substring(0, idx);
nextIdx = idx;
}
buildArray.push(line);
return FrameworkUtil.foldText(text.substring(nextIdx), charCount, buildArray);
}
}