正则表达式解析字符串

时间:2016-09-22 05:28:14

标签: javascript regex

我的字符串看起来像:

2d
1m
5h

我想解析它并得到数组:

[2, 'd']
[1, 'm']
[5, 'h']

我写了正则表达式:

var r = /^(\d)([mhd])$/;
var res = r.exec("2m");
console.log(res);

输出:["2m", "2", "m"]

正如您所看到的,第一项是多余的。 如何正确编写?

3 个答案:

答案 0 :(得分:1)

js regex.exec将整个匹配作为结果数组的第一项。您可以使用index来获取catch组。

答案 1 :(得分:1)

你已经做得很好了。只需要使用 slice()选择正确的部分。

var r = /^(\d)([mhd])$/;
var res = r.exec("2m").slice(1, 3);
console.log(res);

答案 2 :(得分:0)



var r = /^(\d)([mhd])$/;
var res = r.exec("2m");
res = res.slice(1,3);
console.log(res);




//输出[" 2"," m"]