Я пытаюсь преобразовать военное время из строки с регулярным выражением ... то, что я до сих порRegExp преобразование военного времени JavaScript
var a = "[18:37:56]";
var b = a.replace(/(\[|\])/g,'');
var c = b.match(/^[0-9][0-9]/);
var d = Number(c[0]) > 12 ? Number(c[0]) - 12 : Number(c[0]);
b.replace(/^[0-9][0-9]/,d);
Первым заменить, чтобы избавиться от квадратных скобок. Затем мы сопоставляем первые два числа, после чего мы увидим, если это число больше 12, если так вычесть 12, если не оставить его в покое. Затем замените эти числа на соответствующее число.
Проблема в том, что, если для c нет второго номера, то есть это только в 12:01 или 9:59 в стандартное время. Я вижу много недостатков, которые могут придумать это, есть ли у кого-нибудь лучшие решения, чем то, что я сделал?
Используйте modulo, '18% 12 === 6' – elclanrs
Можете ли вы объяснить, что с Vanilla JS? и что такое '%' в терминах здесь. – EasyBB
См. Здесь http://en.wikipedia.org/wiki/Modular_arithmetic – elclanrs