Javascript 如何使用正则表达式拆分时间字符串
在javascript中,我有一个时间字符串Javascript 如何使用正则表达式拆分时间字符串,javascript,regex,Javascript,Regex,在javascript中,我有一个时间字符串var time=“12:30:49PM” 我想将小时、分钟、秒和AM/PM与该字符串分开 浏览stackoverflow,我能够找到下面的正则表达式,分为小时、分钟和上午/下午,但我非常不擅长正则表达式,所以我无法解决如何进行秒 var hours = Number(time.match(/^(\d+)/)[1]); var minutes = Number(time.match(/:(\d+)/)[1]); var AMPM = time.m
var time=“12:30:49PM”
我想将小时、分钟、秒和AM/PM与该字符串分开
浏览stackoverflow,我能够找到下面的正则表达式,分为小时、分钟和上午/下午,但我非常不擅长正则表达式,所以我无法解决如何进行秒
var hours = Number(time.match(/^(\d+)/)[1]);
var minutes = Number(time.match(/:(\d+)/)[1]);
var AMPM = time.match(/([AaPp][Mm])$/)[1];
如何通过regex获取第二个您可以将regex与ES6数组分解结合使用:
const time=“12:30:49下午”
常数[小时、分钟、秒、周期]=时间匹配(/\d+\w+/g);
控制台日志(小时、分钟、秒、周期)代码>您可以将正则表达式与ES6数组分解结合使用:
const time=“12:30:49下午”
常数[小时、分钟、秒、周期]=时间匹配(/\d+\w+/g);
控制台日志(小时、分钟、秒、周期)代码>您可以这样使用它:
var time=“12:30:49下午”
var小时数=数量(time.match(/^(\d+/)[1]);
var minutes=Number(time.match(/:(\d+/)[1]);
var sec=数字(time.match(/:(\d+)\d+$/)[1]);
var AMPM=时间匹配(/([ap]m)$/i)[1];
控制台日志(小时);
控制台日志(分钟);
控制台日志(秒);
控制台日志(AMPM)代码>您可以这样使用它:
var time=“12:30:49下午”
var小时数=数量(time.match(/^(\d+/)[1]);
var minutes=Number(time.match(/:(\d+/)[1]);
var sec=数字(time.match(/:(\d+)\d+$/)[1]);
var AMPM=时间匹配(/([ap]m)$/i)[1];
控制台日志(小时);
控制台日志(分钟);
控制台日志(秒);
控制台日志(AMPM)代码>只需在冒号和(p\A)M部分上拆分
var time=“12:30:49下午”;
var parts=time.split(/:|(\DM)/).filter(布尔);
console.log(parts)
只需在冒号和(p\A)M部分上拆分即可
var time=“12:30:49下午”;
var parts=time.split(/:|(\DM)/).filter(布尔);
console.log(parts)
在您的示例中,您只需执行以下操作:
var time=“12:30:49下午”;
var小时数=数量(time.match(/^(\d+/)[1]);
var minutes=Number(time.match(/:(\d+/)[1]);
var AMPM=时间匹配(/([AaPp][Mm])$/)[1];
var seconds=数字(time.match(/:(\d+):(\d+/)[2]);
日志(小时,:,分钟,:,秒,AMPM)代码>在您的示例中,您只需执行以下操作:
var time=“12:30:49下午”;
var小时数=数量(time.match(/^(\d+/)[1]);
var minutes=Number(time.match(/:(\d+/)[1]);
var AMPM=时间匹配(/([AaPp][Mm])$/)[1];
var seconds=数字(time.match(/:(\d+):(\d+/)[2]);
日志(小时,:,分钟,:,秒,AMPM)代码>怎么样!:
console.log(DateTimeFormat(new Date(), '`The Year is ${y} DateTime is: ${m}/${d}/${y} Time is: ${h}:${M}:${s} `'))
function DateTimeFormat(dt, fmt)
{
[y, m, d, h, M, s, ms] = new
Date(dt).toLocaleString('UTC').match(/\d+/g)
return eval(fmt)
}
怎么样!:
console.log(DateTimeFormat(new Date(), '`The Year is ${y} DateTime is: ${m}/${d}/${y} Time is: ${h}:${M}:${s} `'))
function DateTimeFormat(dt, fmt)
{
[y, m, d, h, M, s, ms] = new
Date(dt).toLocaleString('UTC').match(/\d+/g)
return eval(fmt)
}
这是一种很好的方式:)这太可爱了!我也喜欢你的方法,我可能也会这么做。一个问题是正则表达式有点太松散了,所以它可能不会总是像预期的那样工作,而且你也不会有一个简单的方法来判断,因为它很可能就是这样。这是一个非常好的方法:)这很可爱!我也喜欢你的方法,我可能也会这么做。一个问题是正则表达式有点太松散了,所以它可能不会总是像预期的那样工作,而且你也不会有一个简单的方法来判断它,因为它很可能就是这样。如果有人想在toLocaleTimeString中使用它,你可以做以下操作:new Date().toLocaleTimeString('en-US',{timeZone})。match(/(\d+)(\d{2}):(\d{2})(AM{PM i)如果有人想将其用于toLocaleTimeString,您可以执行以下操作:new Date().toLocaleTimeString('en-US',{timeZone}).match(/(\d+):(\d{2}):(\d{2})(AM | PM)/i)