Проблема в том, что ваше регулярное выражение не учитывает знак минус на числе (даты до 1970 года имеют отрицательные значения времени, поскольку значения времени смещены в миллисекундах с 1 января 1970 года в полночь).Вам нужно добавить -?
в начале:
value.match(/^\/Date\(-?\d*[\+\-]?\d*\)\/$/))
// Here --------------^^
var value = "/Date(-2208988800000+0100)/";
console.log(value.match(/^\/Date\(-?\d*[\+\-]?\d*\)\/$/));
Примечание: я думаю, что оба ваших \d*
s хотят быть \d+
s.Требуется хотя бы одна цифра по обе стороны от +
/ -
, разделяющая смещение часового пояса ...
Примечание для стороны 2: В [\+\-]
никакой обратной косой черты фактически не требуется.+
не является особенным в []
, а -
является особенным только в []
, когда это не в начале или в конце.