用于评估以下字符串的正则表达式
Regular expression to evaluate following string
我收到
形式的用户输入
key1=value1,key2=value2,key3=value3
并且可以有任意数量的键值对,
我写了下面的正则表达式来评估上面的字符串。
[a-z0-9]+(:|=)[a-z0-9]+
但我不太确定,如何检查键值对的倍数,我写的这个字符串可以评估一个键值对,我想让它评估键值对的孔字符串。非常感谢对此的任何建议
尝试
([a-z0-9]+(:|=)[a-z0-9]+,?)+
删除尾随逗号
if(str.substr(-1) === ',')
str = str.substr(0, str.length - 1)
试试这个正则表达式 (\w+)[:=](\w+),?
,其中第 1 组匹配键,第 2 组匹配值。
你也可以使用拆分,它可能会更快。
var input = "your input";
var pairs = input.split(",")
for (i = 0; i < pairs.length; i++) {
var parts = pairs[i].split(/[:=]/);
var key = parts[0];
var value = parts[1]
}
一种常见的方法是(滥用)使用 replace
一次完成工作:
str = "key1=value1,key2=value2,key3=value3"
re = /(\w+)[:=](\w+)/g
obj = {}
str.replace(re, (_, , ) => obj[] = )
console.log(obj)
我收到
形式的用户输入key1=value1,key2=value2,key3=value3
并且可以有任意数量的键值对,
我写了下面的正则表达式来评估上面的字符串。
[a-z0-9]+(:|=)[a-z0-9]+
但我不太确定,如何检查键值对的倍数,我写的这个字符串可以评估一个键值对,我想让它评估键值对的孔字符串。非常感谢对此的任何建议
尝试
([a-z0-9]+(:|=)[a-z0-9]+,?)+
删除尾随逗号
if(str.substr(-1) === ',')
str = str.substr(0, str.length - 1)
试试这个正则表达式 (\w+)[:=](\w+),?
,其中第 1 组匹配键,第 2 组匹配值。
你也可以使用拆分,它可能会更快。
var input = "your input";
var pairs = input.split(",")
for (i = 0; i < pairs.length; i++) {
var parts = pairs[i].split(/[:=]/);
var key = parts[0];
var value = parts[1]
}
一种常见的方法是(滥用)使用 replace
一次完成工作:
str = "key1=value1,key2=value2,key3=value3"
re = /(\w+)[:=](\w+)/g
obj = {}
str.replace(re, (_, , ) => obj[] = )
console.log(obj)