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...