首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不计空格javascript子串字符

问不计空格javascript子串字符
EN

Stack Overflow用户
提问于 2018-08-26 22:57:59
回答 4查看 262关注 0票数 0

我有一个css为的文本描述

代码语言:javascript
复制
white-space: pre-wrap;

它包括空格和换行符等等。

我想限制描述中的字符数,而不计算空格:

代码语言:javascript
复制
description = description.substr(0,100);

当然,我需要保留描述格式。

我怎么能这么做呢?

EN

回答 4

Stack Overflow用户

发布于 2018-08-26 23:02:42

您需要遍历字符串的所有字符,并计算所有不是空格(或任何您想要的模式)的字符,一旦达到限制,您就知道必须截断字符串的位置:

​

代码语言:javascript
复制
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)

​

票数 2
EN

Stack Overflow用户

发布于 2018-08-26 23:16:36

另一种不使用正则表达式的方法是,您可以在删除空格后计算数字

description.replace(' ', '').substr(0, 100)

票数 0
EN

Stack Overflow用户

发布于 2018-08-27 11:53:16

也许这就解决了你的问题:

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52027454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档