我以
的形式获得用户输入键1 =值,键2 =值,KEY3 =值3
并且可以有任意数量的键值对,
我写了以下正则表达式来评估上面的字符串。
[a-z0-9]+(:|=)[a-z0-9]+
但我不太确定,如何检查键值对的多个,我写的这个字符串可以评估一个键值对,我想让它评估键值对的孔字符串。非常感谢任何关于此的建议
答案 0 :(得分:1)
尝试
([a-z0-9]+(:|=)[a-z0-9]+,?)+
删除尾随逗号
if(str.substr(-1) === ',')
str = str.substr(0, str.length - 1)
答案 1 :(得分: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]
}
不要忘记投票并接受:)
答案 2 :(得分:1)
一种常见的方法是(ab)使用replace
一次完成这项工作:
str = "key1=value1,key2=value2,key3=value3"
re = /(\w+)[:=](\w+)/g
obj = {}
str.replace(re, (_, $1, $2) => obj[$1] = $2)
console.log(obj)