解析字符串以检索参数

时间:2014-12-15 12:58:12

标签: javascript jquery

我有以下字符串:

"paramFoo={12}, paramBar={1}, paramFooBar={2713}"

现在,我需要获得这3个参数的值。有没有办法在JavaScript / jQuery和/或AngularJS中做到这一点?

我只能想到:

  1. 搜索' paramFoo = {'并将其从字符串中删除。
  2. 获得第一个'}'
  3. 的位置
  4. 从字符0中获取价值 - (来自2的位置) - 1
  5. 从字符串
  6. 中删除字符0 - (来自2.的位置)
  7. [重复1-4次两次]
  8. 我敢肯定,必须有更清洁的方法来做到这一点。

    非常感谢!

2 个答案:

答案 0 :(得分:4)

只需使用正则表达式!

str.match(/\d+/g)

会为您提供一个[12,1,2714]的数组。

如果你有数字以外的东西,正则表达式会更复杂。

答案 1 :(得分:2)

我会做这样的事情:

function parse(s) {
    var re = /^([a-zA-Z]+)=\{([0-9]+)\}(?:\,\s*(.*))?$/, parts, res = {};
    while (s && (parts = re.exec(s))) {
        res[parts[1]] = parseInt(parts[2]);
        s = parts[3];
    }
    return res;
}