图片如上,一行字我算了,是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