javascript - 如何每隔 n 个字符或最近的前一个空格分割字符串

标签 javascript regex

我想每 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/

相关文章:

javascript - jQuery UI 在纸牌游戏中拖动一堆纸牌

javascript - 如何在 Javascript 正则表达式中使用变量?

regex - CLion 正则表达式用找到的字符串替换模式

Java 正则表达式 Html

java - 检查字符串是否仅包含 Unicode 值 [\u0030-\u0039] 或 [\u0660-\u0669]

javascript - React 路由器向下滚动新页面

javascript - jQuery 确认与普通 JS 确认

javascript - Promise 在上一个 then 执行完成之前执行 then 函数

python - 正则表达式的不平衡括号错误

javascript - 停止图像幻灯片上的图像闪烁