You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
20 lines
1.0 KiB
20 lines
1.0 KiB
import assertString from './util/assertString'; |
|
/* 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("[-+]".concat(timeHour.source, ":").concat(timeMinute.source)); |
|
var timeOffset = new RegExp("([zZ]|".concat(timeNumOffset.source, ")")); |
|
var partialTime = new RegExp("".concat(timeHour.source, ":").concat(timeMinute.source, ":").concat(timeSecond.source).concat(timeSecFrac.source)); |
|
var fullDate = new RegExp("".concat(dateFullYear.source, "-").concat(dateMonth.source, "-").concat(dateMDay.source)); |
|
var fullTime = new RegExp("".concat(partialTime.source).concat(timeOffset.source)); |
|
var rfc3339 = new RegExp("^".concat(fullDate.source, "[ tT]").concat(fullTime.source, "$")); |
|
export default function isRFC3339(str) { |
|
assertString(str); |
|
return rfc3339.test(str); |
|
} |