我想每 15 个字符插入一个换行符(包括空格)。
我目前正在使用下面的正则表达式,它在某种程度上起作用,但它占用了单词后最近的空格,并且我想要最近的前一个空格。有什么想法吗?
const split = str.replace(/([\s\S]{15}[^ ]*)/g, '$1\n');
大家有什么想法吗?
最佳答案
您可以使用
s.replace(/[\s\S]{1,15}(?!\S)/g, '$&\n')
请参阅regex demo
详细信息
[\s\S]{1,15}
- 任意 1 到 15 个字符,尽可能多(也就是说,一次抓取所有 15 个字符,然后回溯以查找.. .)(?!\S)
- 后面没有紧跟非空格的位置(因此是空格或字符串结尾)。
请注意,无需使用 (...)
包装整个模式,因为您可以使用替换中的 $&
占位符引用整个匹配项模式。
关于javascript - 如何每隔 n 个字符或最近的前一个空格分割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53801855/