JSFiddle - React, Tailwind, and code Playground

by Terrance Smith

HTML

<form>
    <input type="text" value="12:51 am" id="in"/>
    <input type="text" value="_" id="out"/>
    <input type="button" onclick="formatTime();" value="  format  " id="formatter"/>
</form>

JavaScript

function formatTime() {
    alert("started");
    var timeIn = getClockTime(document.getElementById("in").value);
    document.getElementById("out").value = PadTime(timeIn);
    alert("Completed");
}

function getClockTime(inputDate)
{
   var dateVal    = new Date(inputDate);
   var hour   = dateVal.getHours();
   var minute = dateVal.getMinutes();
   var second = dateVal.getSeconds();
   var ap = "AM";
   if (hour   > 11) { ap = "PM";}
   if (hour   > 12) { hour = hour - 12;}
   if (hour   === 0) { hour = 12;}
   if (hour   < 10) { hour   = "0" + hour;}
   if (minute < 10) { minute = "0" + minute;}
   if (second < 10) { second = "0" + second;}
   var timeString = hour + ':' + minute + ':' + second +" " +ap;
   return timeString;
} 


function PadTime(input) {
    //optional boolean arg show seconds
    var Hour = "(1[012]|0?[1-9]){1}";
    
    var MinutesOrSecondsBeforeAmOrPm = "(([0-5][0-9]|[1-5][0-9]?:){1})(?=\\s*(am|pm|AM|PM){1})";
    var Minute = "([0-5][0-9]|[1-5][0-9]){1}";
    var Second = "([0-5][0-9]|[1-5][0-9]){1}";
    var AmOrPm = "(am|pm|AM|PM){1}";
    var Start = "^";
    var Space = "\\s";
    var AnyNumberOfSpaces = "\\s*";
    var Seperator = ":";
    var End = "$";

    //var timePattern1 = /^((0?[1-9]|1[0-9])\s*(am|pm|AM|PM){1})/;
    var timePattern1 = new RegExp(Start + "(" + Hour + AnyNumberOfSpaces + AmOrPm + ")" + End);

    // Time Pattern example match: 08:00 AM : 12:45pm
    var timePattern2 = new RegExp(Start + "(" + Hour + Seperator + Minute + Space + "*" + AmOrPm + ")" + End);

    // Time Pattern example match: 0800 PM or 950am or 1200 AM or 1042pm
    var timePattern3 = new RegExp(Start + "(" + Hour + Minute + Space + "*" + AmOrPm + ")" + End);

    // Time Pattern example match: 08:51:09 pm
    var timePattern4 = new RegExp(Start + "(" + Hour + Seperator + Minute + Seperator + Second + Space + "*" + AmOrPm + ")" + End);


    //var timePatternFull =...