qq_40850078
Rebel-66
采纳率20%
2021-03-25 15:16

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

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

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

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

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

 

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

6条回答

  • aitiem aitiem 2月前
    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(' ')
    }

    是这样吗

    点赞 评论 复制链接分享
  • Menkongkong Menkongkong 2月前

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

    点赞 1 评论 复制链接分享
  • weixin_38500689 非渔驿站 2月前

    用css

    点赞 评论 复制链接分享
  • hu071700 AllPromise 2月前
    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);


     

    点赞 评论 复制链接分享
  • r1733209039 random1123 2月前

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

    点赞 评论 复制链接分享
  • r1733209039 random1123 2月前
    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))
    点赞 评论 复制链接分享

相关推荐