Javascript 按N个相同字符拆分,按第一次出现拆分

Javascript 按N个相同字符拆分,按第一次出现拆分,javascript,regex,string,split,Javascript,Regex,String,Split,我有如下输入: const str = 'key=value' // expected: str[0] == 'key', str[1] == 'value' const str = 'key==value' // expected: str[0] == 'key', str[1] == 'value' const str = 'key=value1=value2=value3' // expected: s

我有如下输入:

const str = 'key=value'                     // expected: str[0] == 'key', str[1] == 'value'
const str = 'key==value'                    // expected: str[0] == 'key', str[1] == 'value'
const str = 'key=value1=value2=value3'      // expected: str[0] == 'key', str[1] == 'value1=value2=value3'
const str = 'key==value1=value2'            // expected: str[0] == 'key', str[1] == 'value1=value2'
我感兴趣的是按键值对进行拆分,获取第一个出现的
=
=
并按此进行拆分。我试过:

var str = "this==that=these";
var spl = str.split(/==|=(.+)/);        // spl[0] == 'this', spl[1] == 'undefined'
var spl = str.split(/=|==(.+)/);        // spl[0] == 'this', spl[1] == 'undefined'
var spl = str.split(/[==]|[=](.+)/);    // spl[0] == 'this', spl[1] == 'undefined'

但这些都不起作用。作为一个单行正则表达式,有什么方法可以做到这一点吗?

如果使用split,您不希望捕获正则表达式中的实际键或值,否则它们将是附加子字符串的一部分。你只需要做
str.split(/={1,2}/)
(这与
str.split(/==|=/)
相同)

谢谢。最后的代码:
varspl=str.split(/={1,2}(+)/)
允许我涵盖所有用例。无需
.split
。您可以像在
str.match(/^([^=])=+(.*)/)中一样使用
.match