首页 > 解决方案 > RegExp / JavaScript:在多个字符上拆分字符串,保留分隔符而不使用lookbehind

问题描述

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

我目前正在使用以下 regExp 执行此操作:

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

这做了应该做的事情..至少在 Chrome 中。据我了解,Safari 不支持 regExp 中的lookbehind,这会破坏代码。有没有什么方法可以做到这一点而无需向后看?

标签: javascriptarraysregexstringsplit

解决方案


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

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

console.log(parts);


推荐阅读