我有一个css为的文本描述
white-space: pre-wrap;它包括空格和换行符等等。
我想限制描述中的字符数,而不计算空格:
description = description.substr(0,100);当然,我需要保留描述格式。
我怎么能这么做呢?
发布于 2018-08-26 23:02:42
您需要遍历字符串的所有字符,并计算所有不是空格(或任何您想要的模式)的字符,一旦达到限制,您就知道必须截断字符串的位置:
var description = '1 2 3 4 5 6 7 8 9 10 11 12 13 14'
function limitLength(str, length, exclude) {
var i = 0
for (var count = 0 ; i < str.length && count < length; i++) {
if (!str[i].match(exclude)) {
count++
}
}
return str.substr(0, i)
}
description = limitLength(description, 15, /([\s])/)
console.log(description)
发布于 2018-08-26 23:16:36
另一种不使用正则表达式的方法是,您可以在删除空格后计算数字
description.replace(' ', '').substr(0, 100)
发布于 2018-08-27 11:53:16
也许这就解决了你的问题:
let description = "Lorem Ipsum Dolor Sit Amet Consectetur Adipisicing Elit Sed Do Eiusmod Tempor Incididunt Ut Labore Et Dolore Magna Ali";
let spaceCount = ((description || '').match(/\s+/g) || []).length;
let description1 = description.substr(0, 100 + spaceCount);
// OR
let description2 = description.substr(0, 100 - spaceCount);
console.log(description1, description2)https://stackoverflow.com/questions/52027454
复制相似问题