39 lines
1.2 KiB
JavaScript
39 lines
1.2 KiB
JavaScript
'use strict';
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.default = isRFC3339;
|
|
|
|
var _assertString = require('./util/assertString');
|
|
|
|
var _assertString2 = _interopRequireDefault(_assertString);
|
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
|
|
/* Based on https://tools.ietf.org/html/rfc3339#section-5.6 */
|
|
|
|
var dateFullYear = /[0-9]{4}/;
|
|
var dateMonth = /(0[1-9]|1[0-2])/;
|
|
var dateMDay = /([12]\d|0[1-9]|3[01])/;
|
|
|
|
var timeHour = /([01][0-9]|2[0-3])/;
|
|
var timeMinute = /[0-5][0-9]/;
|
|
var timeSecond = /([0-5][0-9]|60)/;
|
|
|
|
var timeSecFrac = /(\.[0-9]+)?/;
|
|
var timeNumOffset = new RegExp('[-+]' + timeHour.source + ':' + timeMinute.source);
|
|
var timeOffset = new RegExp('([zZ]|' + timeNumOffset.source + ')');
|
|
|
|
var partialTime = new RegExp(timeHour.source + ':' + timeMinute.source + ':' + timeSecond.source + timeSecFrac.source);
|
|
|
|
var fullDate = new RegExp(dateFullYear.source + '-' + dateMonth.source + '-' + dateMDay.source);
|
|
var fullTime = new RegExp('' + partialTime.source + timeOffset.source);
|
|
|
|
var rfc3339 = new RegExp(fullDate.source + '[ tT]' + fullTime.source);
|
|
|
|
function isRFC3339(str) {
|
|
(0, _assertString2.default)(str);
|
|
return rfc3339.test(str);
|
|
}
|
|
module.exports = exports['default']; |