我的字符串看起来像:
2d
1m
5h
我想解析它并得到数组:
[2, 'd']
[1, 'm']
[5, 'h']
我写了正则表达式:
var r = /^(\d)([mhd])$/;
var res = r.exec("2m");
console.log(res);
输出:["2m", "2", "m"]
正如您所看到的,第一项是多余的。 如何正确编写?
答案 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"]