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

Javascript 如何在每n个字符或最近的前一个空格拆分字符串,javascript,regex,Javascript,Regex,我想每15个字符(包括空格)插入一个换行符 我目前正在使用下面的正则表达式,它在某种程度上起作用,但它占用了单词后面最近的空格,我想要最接近的前一个空格。有什么想法吗 const split = str.replace(/([\s\S]{15}[^ ]*)/g, '$1\n'); 任何人有什么想法吗?你可以用 s.replace(/[\s\S]{1,15}(?!\S)/g, '$&\n') 见 详细信息 [\s\s]{1,15}-任何1到15个字符,尽可能多(也就是说,所有15个字

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

我目前正在使用下面的正则表达式,它在某种程度上起作用,但它占用了单词后面最近的空格,我想要最接近的前一个空格。有什么想法吗

const split = str.replace(/([\s\S]{15}[^ ]*)/g, '$1\n');
任何人有什么想法吗?

你可以用

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

详细信息

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

请注意,不需要使用
(…)
来包装整个模式,因为您可以使用替换模式中的
$&
占位符来引用整个匹配。

请尝试
替换(/[\s]{1,15}(?!\s)/g,'$&\n')
,非常有效,谢谢!你介意让我看一下最后一组和结尾的替换词吗?你也可以把它作为答案贴出来,这样我就可以把它标记为完成了吗?你的解释很好,谢谢。不需要更多的澄清,比如说,20个字符长的单词没有空格是不行的。@ux.engineer当然不适合你,因为你有不同的要求。Wiktor…对,这个问题描述中定义的要求有些不同-但是问题的当前标题“如何在每n个字符或最近的前一个空格拆分一个字符串”正是我想要的。是否要更新标题,以便我可以用该标题提出一个新问题?