Javascript 把一根绳子分成几行?

Javascript 把一根绳子分成几行?,javascript,Javascript,在javascript中,如果字符串超过25个字符,如何将其拆分为两行;如果字符串包含75个字符,则我希望将字符串拆分为三行25个字符 提前感谢在javascript中使用str_split(php)等价物 函数str\u split(字符串,split\u长度){ //将字符串转换为数组。如果指定了拆分长度, //将字符串分解为多个块,每个块的长度为个字符。 // //版本:1101.3117 //讨论地点:http://phpjs.org/functions/str_split

在javascript中,如果字符串超过25个字符,如何将其拆分为两行;如果字符串包含75个字符,则我希望将字符串拆分为三行25个字符

提前感谢

在javascript中使用str_split(php)等价物

函数str\u split(字符串,split\u长度){
//将字符串转换为数组。如果指定了拆分长度,
//将字符串分解为多个块,每个块的长度为个字符。
// 
//版本:1101.3117
//讨论地点:http://phpjs.org/functions/str_split    
//+原件:Martijn Wieringa
//+改进者:Brett Zamir(http://brett-zamir.me)
//+错误修复者:Onno Marsman
//+修订人:Theriault
//+输入:Bjorn Roesbeke(http://www.bjornroesbeke.be/)    
//+修订人:RafałKukawski(http://blog.kukawski.pl/)
//*示例1:str_split('Hello Friend',3);
//*返回1:['Hel','lo','Fri','end']
如果(拆分长度===null){
拆分长度=1;}
如果(字符串===null | |拆分长度<1){
返回false;
}
字符串+='';
var chunks=[],pos=0,len=string.length;
while(pos
尝试使用类似的方法

var point=0;

var myStr="12345678901234567890ABCDE my very long string 12345678901234567890ABCDE";
var myRes="";
while(myStr.substring(point).length>25)
{
  myRes=myRes+myStr.substring(point,point+25)+"\n"
  point+=25;
}

return myRes+myStr.substring(point);

这会让你非常接近:

var txt = "This is a really long string that should be broken up onto lines of 25 characters, or less.";

for (i=0;i<(Math.ceil(txt.length/25));i++) {
    document.write(txt.substring(25*i,25*(i+1)) + "<br />");
}
var txt=“这是一个非常长的字符串,应该分成25个字符或更少的行。”;

对于(i=0;i,使用正则表达式很容易实现:

var text = '75 characters long (really!) — well... maybe not, but you get the picture.',
    broken;
broken = text.replace(/([^\0]{25})/g, '$1\n');
如本文所示:

编辑:解释正则表达式:它将匹配任何长度为25个字符的字符串(除NUL外的所有字符的集合)

括号()表示应该捕获该部分,第二个参数(替换字符串)的“$1”部分引用第一个捕获

找到的每一个25个字符的字符串都将替换为“自身加换行符”。如果剩余字符少于25个字符,则将不匹配该字符串,而将其单独保留


第二次编辑:布罗克是对的,点在方括号中失去了它的特殊意义。我已经用所有非NUL字符替换了它,因为我不希望文本字符串中包含NUL字符。

现在它已修复,原始注释已删除+1@BrockAdams:哦,你说得对。我忘了测试上次的更改。:-\n我已更新答案。任何想寻找不破坏文字的解决方案(又名wordwrap)的人,请访问此网站:@JLewkovich谢谢!
var text = '75 characters long (really!) — well... maybe not, but you get the picture.',
    broken;
broken = text.replace(/([^\0]{25})/g, '$1\n');