function validTime(str) {
if (str.length == 0) return true;
if (str.length < 4) return false;
var x = str.indexOf(":");
if (x < 0) {
str = str.substr(0, 2) + ":" + str.substr(2, 2);
document.getElementById(id).value = str;
document.getElementById(id).focus();
return true;
}
if (
(str.substr(0, 2) >= 0) &&
(str.substr(0, 2) <= 24) &&
(str.substr(3, 2) >= 0) &&
(str.substr(3, 2) <= 59) &&
(str.substr(0, 2) < 24 || (str.substr(0, 2) == 24 && str.substr(3, 2) == 0))
)
return true;
return false;
}
/**
* Test Suite
*/
describe('validTime()', () => {
it('returns true for valid time', () => {
// arrange
const str = '13:58';
// act
const result = validTime(str);
// log
console.log("result 1: ", result);
// assert
expect(result).toBe(true);
});
it('returns false when invalid hours', () => {
// arrange
const str = '25:51';
// act
const result = validTime(str);
// log
console.log("result 1: ", result);
// assert
expect(result).toBe(false);
});
it('returns false when invalid minutes', () => {
// arrange
const str = '02:76';
// act
const result = validTime(str);
// log
console.log("result 1: ", result);
// assert
expect(result).toBe(false);
});
});