如何在每n个字符处或最近的前一个空格处分割字符串

时间:2018-12-16 11:53:48

标签: javascript regex

我想每15个字符(包括空格)插入一个换行符。

我当前正在使用下面的正则表达式,该表达式在某种程度上可以正常工作,但是它使我在单词后占用了最近的空格,并且我希望最近的前一个空格。有什么想法吗?

const split = str.replace(/([\s\S]{15}[^ ]*)/g, '$1\n');

有任何想法吗?

1 个答案:

答案 0 :(得分:2)

您可以使用

s.replace(/[\s\S]{1,15}(?!\S)/g, '$&\n')

请参见regex demo

详细信息

  • [\s\S]{1,15}-尽可能多的1到15个字符(也就是说,一次抓取所有15个字符,然后进行回溯以找到...)
  • (?!\S)-不立即跟在非空格(即空格或字符串结尾)之后的位置。

请注意,由于您可以使用替换模式中的(...)占位符来引用整个匹配项,因此无需用$&包装整个模式。