首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在javascript中将字符串拆分为多行

在javascript中将字符串拆分为多行
EN

Stack Overflow用户
提问于 2018-09-19 07:20:06
回答 4查看 8.6K关注 0票数 0

我正在尝试找到一种将长字符串拆分成多行的方法,所以我正在做的是将文本插入到图像中,如果它变得太长,溢出,换行符工作,但让用户添加换行符并在代码中拆分它不是最好的主意,所以如果我给它一个限制,它会检查它是否超过限制拆分为两行,或者我是说在它之间\n一个换行符,然而这很容易,但我的问题是,当第二部分也超过限制时,它应该将它拆分为3个换行符,你该如何实现呢?

示例

代码语言:javascript
复制
split("sometext", 5); // somet\next
split("Hello", 2); // he\nll\no
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-09-19 07:27:30

https://j11y.io/snippets/wordwrap-for-javascript/

使用指定的字符限制换行。:)

票数 1
EN

Stack Overflow用户

发布于 2018-09-19 07:40:46

您需要一个如下所示的函数:

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

票数 2
EN

Stack Overflow用户

发布于 2018-09-19 07:44:33

对你的问题的回答非常简单:

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

https://stackoverflow.com/questions/52395822

复制
相关文章

相似问题

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