javascript - RegExp/JavaScript : Split string on multiple characters, 保留分隔符而不使用lookbehind

标签 javascript arrays regex string split

假设我有一个字符串:“这是一个字符串”。我想按空格和连字符分开,但将分隔符与前一个单词保持在一起 => ["This ", "is ", "a ", "string-", "thing"]

我目前正在使用以下正则表达式来执行此操作:

string.split(/(?<=[\s-])/g)

这完成了应该做的事情……至少在 Chrome 中是这样。据我了解,Safari 不支持 regExp 中的lookbehind,这会破坏代码。有没有什么办法可以做到这一点而不需要回溯?

最佳答案

您可以匹配单词而无需向后查找。

const
    string = "This is a string-thing",
    parts = string.match(/.+?([\s-]|$)/g);

console.log(parts);

关于javascript - RegExp/JavaScript : Split string on multiple characters, 保留分隔符而不使用lookbehind,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68944115/

相关文章:

java - 为什么数组在方法调用中会发生变化?

java - 将结果集从 SQL 数组转换为字符串数组

java - 从字符串中获取与正则表达式匹配的未知值的字符串方法

javascript - CSS - 无法更改 <filter> 的此属性?

javascript - 当 Javascript math.random 方法被播种时

Javascript:正则表达式 polyfill 到 IE 中的 'y' 标志

javascript - 这个排序函数内部的机制是什么

javascript - 自动向左对齐图像网格

regex - BASH:是否有一种简单的方法来检查字符串是否是有效的 SHA-1(或 MD5)散列?

javascript - 正则表达式在 Adonis Js 中无法正常工作