Javascript 正则表达式解析字符串
我有一个字符串,看起来像:Javascript 正则表达式解析字符串,javascript,regex,Javascript,Regex,我有一个字符串,看起来像: 2d 1m 5h 我想解析它并获取数组: [2, 'd'] [1, 'm'] [5, 'h'] 我编写了regexp: var r = /^(\d)([mhd])$/; var res = r.exec("2m"); console.log(res); 它输出:[“2m”、“2”、“m”] 正如你们所看到的,第一项是多余的。 如何正确地编写它?js regex.exec将把整个匹配作为结果数组的第一项。您可以使用索引获取捕获组。您已经正确地完成了。只需使用sli
2d
1m
5h
我想解析它并获取数组:
[2, 'd']
[1, 'm']
[5, 'h']
我编写了regexp:
var r = /^(\d)([mhd])$/;
var res = r.exec("2m");
console.log(res);
它输出:[“2m”、“2”、“m”]
正如你们所看到的,第一项是多余的。
如何正确地编写它?js regex.exec将把整个匹配作为结果数组的第一项。您可以使用索引获取捕获组。您已经正确地完成了。只需使用slice()选择正确的零件
var r=/^(\d)([mhd])$/;
var res=r.exec(“2m”);
res=res.切片(1,3);
控制台日志(res)代码>仅2个字符,使用索引为OK所有字符串都是2个字符吗,第一个是数字,第二个是字母?@passion你认为会快得多吗?@TimBiegeleisen是的,数字和字母,但数字可以是2个字符str.match(/\d+|[mhd]/g)
@AvinashRaj:这只匹配第一个“2”。@bitfet是否添加了g标志?@AvinashRaj:是否编辑了您的评论?(我复制并粘贴了您的代码,没有错误:LOL:)。无论如何,您也在匹配不需要的输入。例如,“2m4d”
将产生['2','m','4','d']
,但它不应该匹配。如果是这种情况,那么如果输入是12m
var r = /^(\d)([mhd])$/;
var res = r.exec("2m").slice(1, 3);
console.log(res);