前端JS英文字符串换行问题

图片如上,一行字我算了,是37个,目前我写的逻辑是到36个字判断是不是空格,如果是空格,自动换行,如果不是空格,那就加个‘-’这个符号,但他们说不行,要整个单词换行,求大佬解答,这段代码我应该怎么写

下面是我代码的内容,其中value是这个字符串,帮我看看怎么改,谢谢了,求求了

我好像没说清楚,原来的效果是这样子的

现在的最终结果我想要这样的

 

changeWrap(value){
  let len = 0
  let data = value.split(' ')
  for(let i = 0;i<data.length;i++){
      let l = data[i].length
      if((len + l)>37){
          data[i] = `\r\n${data[i]}`
          len = l
      }else len += l
  }
  return data.join(' ')
}

是这样吗

这个设置在css里面,word-break:hyphenate;可以实现你的效果,单词会整个换到下一行,但是会留出来空白,要补全空白使用text-align: justify;如果帮到你,请采纳。

let str='Some birds are not meant to be caged,their feathers are just too bright.'
 function fn(str){
 let newStr=''
 if(str.length>36){
   let count=0;
   let len=str.length 
   for(let i=0;i<len;i+=36){
     if(str.slice(36*(count+1),36*(count+1)+1)===''||str.slice(36*(count+1),36*(count+1)+1)==='.'||str.slice(36*(count+1),36*(count+1)+1)===','){
      newStr+=str.slice(count*36,36*(count+1))+'\n'
    }else{
      if(len/36>count+1){
        newStr+=str.slice(count*36,36*(count+1))+'-\n'
      }
    }
    count++;
   }
   return newStr
 }
}
 console.log(fn(str))

 

直接设置css样式的width值不行吗,会自动换行

let word = 'Some birds are not meant to be wordssssss , their feathers are just too bright.';

    let arr = word.split(' '), num = 0, str = '';

    for (let i = 0; i < arr.length; i++) {


        if (num + arr[i].length + 1 <= 37) {


            num = num + arr[i].length + 1;


            str = str + arr[i] + ' ';


        } else {


            num = arr[i].length;


            str = str + '\n' + arr[i];


        }


    }


    console.log(str);


 

用css