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