Я не могу заставить регулярное выражение соответствовать чему-либо в моей функции javascript, и у меня закончились идеи, что не так. Я работал над этим фрагментом для большей части поиска и проверки строк регулярных выражений других людей, и каждая попытка терпит неудачу с m = null. Это должно быть что-то простое ... Я не могу этого видеть.
Строка регулярного выражения, на которой я остановился, проверяется здесь: Пример
Цель функции js - сделать так, чтобы время ввода выводилось за 24 часа. Предупреждения предназначены только для тестирования.
Вот мой javascript код:
//
// Enable a prototype getHours function
//
Date.prototype.addHours= function(h){
this.setHours(this.getHours()+h);
return this;
}
//
// Input: string '07/19/2020 08:40 PM'
// Output: date 07/19/2020 20:40
//
function strToDate(dateString){
try {
var dateobject;
var dateReg = /^(\d{1,2})\/(\d{1,2})\/(\d{4}) (\d{1,2}):(\d{1,2}):(\d{1,2}) ([AP]M)$/;
var m = dateString.match(dateReg);
if (m) {
dateobject = new Date(m[1], m[2]-1, m[3], m[4], m[5], 0)
if (m[6] == 'PM') {
dateobject = dateobject.addHours(12)
}
} else {
alert('no match');
}
return dateObject;
} catch (ex) {
alert('error: ' + ex);
}
}
Мы будем благодарны за любые предложения!