JSFiddle - React, Tailwind, and code Playground

by WilsonPage

HTML

<input type='text'/>

<div class='output'></div>

JavaScript

var timeCleaner = (function() {


    function toTitleCase(str) {
        return str.replace(/\w\S*/g, function(txt) {
            return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
        });
    }


    function returnHour(n, ampm) {
        if (n.length < 2) { //IF ONLY ONE CHARACTER
            n = parseFloat(n);

            if (!ampm) {
                n = '0' + n;
            } else {
                if (ampm == 'am') {
                    n = '0' + n;
                } else {
                    n = n + 12;
                }
            }
        } else { //IF TWO CHARACTERS
            n = parseFloat(n);
            if (n > 23 || n < 0) {
                n = 0;
            }
            if (!ampm) {
                if (n < 10) {
                    n = '0' + n;
                } else {
                    n = n
                }
            } else {
                if (ampm == 'am') {
                    if (n < 10) {
                        n = '0' + n;
                    } else {
                        n = n
                    }
                } else {
                    if (n < 12) {
                        n = n + 12
                    }
                    if (n == 12) {
                        n = '00'
                    }
                }
            }
        }
        return n;
    }


    function returnMins(n) {
        if (n > 59) {
            n = '59'
        }
        if (n < 0) {
            n = '00'
        }
        return n;
    }


    return function(time) {
        var time = time.toLowerCase(),
            ampm = time.match('am|pm'),
            hr = '00',
            mins = '00';

        // remove am,pm and :    
        time = time.replace(/a|p|m|am|pm|:/g, '');

        if (time.length > 7) return toTitleCase(time);

        if (time.length <= 2) { //if less than 2 digits
            hr = returnHour(time, ampm);
        } else if (time.length <= 4) { //if more than 2 digits but less that 4
            if...