截取字符串
尽可能长的截取字符串,但是不能超过限定长度。
js
function BreakText(str, maxWidth) {
const canvas = document.createElement('canvas');
const context = canvas.getContext('2d');
function getTextWidth(text) {
return context.measureText(text).width;
}
function doBreaktext() {
let result = []
let currentLine = '';
for (let i = 0; i< str.length; i++) {
const char = str[i]
const testLine = currentLine + char;
const testWidth = getTextWidth(testLine);
if (testWidth > maxWidth) {
result.push(currentLine)
currentLine = char; // 开始新的一行
} else {
currentLine = testLine; // 继续添加字符
}
}
result.push(currentLine); // 添加最后一行
return result;
}
return doBreaktext()
}
// 测试
let str = "这是一个测试字符串,用于测试如何在限定宽度内截取字符串。可能很长很长,超过限定宽度。";
let maxWidth = 100; // 限定宽度
console.log(BreakText(str, maxWidth));