字符串可能是
单位是[年,月,星期,天,小时,分钟,秒];
我出来的时间是形如:
1年3星期1小时,
10月3天10小时4分钟
1天5小时6分钟12秒
数值是数字,单位就是上面的.
我想拿到第一级的,上面三个分别拿到'1年','10月','1天'
请问能用正则拿到吗?
字符串可能是
单位是[年,月,星期,天,小时,分钟,秒];
我出来的时间是形如:
1年3星期1小时,
10月3天10小时4分钟
1天5小时6分钟12秒
数值是数字,单位就是上面的.
我想拿到第一级的,上面三个分别拿到'1年','10月','1天'
请问能用正则拿到吗?
"1年3星期1小时".replace(/(\d*.*?)\d.*/, "$1") //1年
"10月3天10小时4分钟".replace(/(\d*.*?)\d.*/, "$1") //10月
"1天5小时6分钟12秒".replace(/(\d*.*?)\d.*/, "$1") //1天
正则表达式是:/(\d(年|月|星期|天|小时|分钟|秒))(\d(年|月|星期|天|小时|分钟|秒))*/
匹配完成后取正则表达式中的第一个分组,也就是返回数组中的第二个元素:比如:
var result = '1年3星期1小时'.match(/(\d(年|月|星期|天|小时|分钟|秒))(\d(年|月|星期|天|小时|分钟|秒))*/);
console.log(result) //["1年3星期1小时", "1年", "年", "1小时", "小时", index: 0, input: "1年3星期1小时"]
result[1] //"1年"
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
str.match(/^(\d+\D+)/)