我想每15个字符(包括空格)插入一个换行符。
我当前正在使用下面的正则表达式,该表达式在某种程度上可以正常工作,但是它使我在单词后占用了最近的空格,并且我希望最近的前一个空格。有什么想法吗?
const split = str.replace(/([\s\S]{15}[^ ]*)/g, '$1\n');
有任何想法吗?
答案 0 :(得分:2)
您可以使用
s.replace(/[\s\S]{1,15}(?!\S)/g, '$&\n')
请参见regex demo
详细信息
[\s\S]{1,15}
-尽可能多的1到15个字符(也就是说,一次抓取所有15个字符,然后进行回溯以找到...)(?!\S)
-不立即跟在非空格(即空格或字符串结尾)之后的位置。 请注意,由于您可以使用替换模式中的(...)
占位符来引用整个匹配项,因此无需用$&
包装整个模式。