我正在尝试找到一种将长字符串拆分成多行的方法,所以我正在做的是将文本插入到图像中,如果它变得太长,溢出,换行符工作,但让用户添加换行符并在代码中拆分它不是最好的主意,所以如果我给它一个限制,它会检查它是否超过限制拆分为两行,或者我是说在它之间\n一个换行符,然而这很容易,但我的问题是,当第二部分也超过限制时,它应该将它拆分为3个换行符,你该如何实现呢?
示例
split("sometext", 5); // somet\next
split("Hello", 2); // he\nll\no
发布于 2018-09-19 07:27:30
https://j11y.io/snippets/wordwrap-for-javascript/
使用指定的字符限制换行。:)
发布于 2018-09-19 07:40:46
您需要一个如下所示的函数:
function split(str, maxWidth) {
const newLineStr = "\n";
done = false;
res = '';
do {
found = false;
// Inserts new line at first whitespace of the line
for (i = maxWidth - 1; i >= 0; i--) {
if (testWhite(str.charAt(i))) {
res = res + [str.slice(0, i), newLineStr].join('');
str = str.slice(i + 1);
found = true;
break;
}
}
// Inserts new line at maxWidth position, the word is too long to wrap
if (!found) {
res += [str.slice(0, maxWidth), newLineStr].join('');
str = str.slice(maxWidth);
}
if (str.length < maxWidth)
done = true;
} while (!done);
return res + str;
}
function testWhite(x) {
const white = new RegExp(/^\s$/);
return white.test(x.charAt(0));
};
console.log(split("sometext", 5));
console.log(split("Hello", 2));
发布于 2018-09-19 07:44:33
对你的问题的回答非常简单:
function customSplit(str, maxLength){
if(str.length <= maxLength)
return str;
var reg = new RegExp(".{1," + maxLength + "}","g");
var parts = str.match(reg);
return parts.join('\n');
}
https://stackoverflow.com/questions/52395822
复制相似问题