当前位置: 首页 > 知识库问答 >
问题:

按长度分解字符串,保留单词

赵晟睿
2023-03-14

使用javascript,我想将任意长度的字符串拆分为最多80个字符的段。需要注意的是,我不想拆分单词。例如,我目前正在使用下面列出的方法在JavaScript中将大字符串拆分为n大小的块

var dialog_array = dialog_to_load.match(/.{1,80}/g);

问题是,一个从第76个字符开始到第84个字符结束的单词将被分成两半。是否有一个光滑的正则表达式或代码来防止这种情况?

为了澄清这一点,我能够编写一个小函数来实现这一点,我只是想知道是否有一种干净、简洁的方法。

字符串的长度和内容可以是任意的,但下面是一个示例:

Lorem ipsum dolor坐在那里,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭,圣职献祭在有限的条件下,在有限的条件下,在有限的条件下进行锻炼。杜伊斯奥特鲁尔杜洛在谴责在波罗的海韦尔特埃塞西莱姆杜洛雷欧盟逃犯nulla pariatur。例外的情况下,不存在,必须在错误的地方,在错误的地方,莫利特和其他地方。

共有2个答案

蓬意致
2023-03-14

您可以使用这个正则表达式

/\S.{1,79}(?=$|\s)/g

\S确保行以非空格开头。因此,中的计数为0。{1,79}需要少一个。使用前瞻(?=可以确保匹配在前面有空格或字符串结尾($)时停止。

match()一起使用时,您可以根据请求获得行,并在发生换行的位置删除空格。

下面的代码段使用50作为宽度,而不是80,因此渲染效果良好:

var s = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";
var res = s.match(/\S.{1,49}(?=$|\s)/g);
console.log(res);
.as-console-wrapper { max-height: 100% !important; top: 0; }
郁高韵
2023-03-14

使用例如/怎么样。{1,80}\b/g尊重单词边界?

 类似资料:
  • 问题内容: 有没有办法在不知道字符串长度的情况下,将一个字符长的字符串切成4个字符串,每个字符长? 例如: 问题答案:

  • 问题内容: 假定两个Java String对象: 那么对于表达式的每个值是否都是真的 评估为? 那么,是否保留String的任何值的原始字符串长度? 问题答案: 令人惊讶它 不是 ! 来自toLowerCase的 Java文档 使用给定语言环境的规则将此String中的所有字符转换为小写。大小写映射基于Character类指定的Unicode标准版本。 由于案例映射并不总是1:1字符映射,因此生成

  • 问题内容: 我正在通过NEST c#使用ElasticSearch。我有很多关于人的信息 我希望能够按lastName以及长度的顺序对项目列表进行过滤和排序,因此名称中只有5个字符的人会出现在结果集的开头,然后是10个字符的人。 所以我想用一些伪代码做类似的事情 我是ElasticSearch的新手,所以任何示例都将非常有帮助。 问题答案: 您可以使用基于脚本的排序进行排序。 作为一个玩具示例,我

  • 问题内容: 我有一个像这样的字符串: 我正在尝试在Python中编写一些内容,以按空格将其拆分,同时忽略引号内的空格。我正在寻找的结果是: PS。我知道你会问:“如果引号内有引号,那么在我的应用程序中,将永远不会发生。 问题答案: 你需要从内置模块中。 这应该正是你想要的。

  • 问题内容: 我试图获取记录在“标题”中,然后是X个字符。 注意:并非所有记录都包含标题字段。 我努力了: 结果,我得到这个错误: 我该如何解决? 问题答案: 您需要考虑到某些文档可能具有空字段。因此,您可以使用常规的空安全运算符。另外,请确保改用POST方法:

  • 在Swift2.2中,我们如何找出字符串的长度(字节)? 我知道一个出路是使用