在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.match(/([AaPp][Mm])$/)[1];
Run Code Online (Sandbox Code Playgroud)
如何获得第二个通过正则表达式
您可以将正则表达式与ES6数组解构结合使用:
const time = "12:30:49PM"
const [hour, min, sec, period] = time.match(/\d+|\w+/g);
console.log(hour, min, sec, period);Run Code Online (Sandbox Code Playgroud)
在您的示例中,您只需执行以下操作:
var time = "12:30:49PM";
var hours = Number(time.match(/^(\d+)/)[1]);
var minutes = Number(time.match(/:(\d+)/)[1]);
var AMPM = time.match(/([AaPp][Mm])$/)[1];
var seconds = Number(time.match(/:(\d+):(\d+)/)[2]);
console.log(hours, ":", minutes, ":", seconds, AMPM); Run Code Online (Sandbox Code Playgroud)
但是,在一次通话中获取所有内容会更有效:
var time = "12:30:49AM";
var matches = time.match(/^(\d+):(\d+):(\d+)([AP]M)$/i);
var hours = matches[1];
var minutes = matches[2];
var seconds = matches[3];
var AMPM = matches[4];
console.log(hours, ":", minutes, ":", seconds, AMPM);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1057 次 |
| 最近记录: |