forked from sheetjs/sheetjs
suggested fixes + support for custom date format
This commit is contained in:
parent
0a169a78d2
commit
79a49b61f5
@ -133,7 +133,7 @@ function fuzzynum(s/*:string*/)/*:number*/ {
|
||||
|
||||
// date regex reference - https://www.oreilly.com/library/view/regular-expressions-cookbook/9781449327453/ch04s04.html
|
||||
// matches mm/dd/yy, mm/dd/yyyy, dd/mm/yy, dd/mm/yyyy
|
||||
const STRICT_DATE_REGEX = [
|
||||
var STRICT_DATE_REGEX = [
|
||||
"^(?:(1[0-2]|0[1-9])\\.(3[01]|[12][0-9]|0[1-9])|(3[01]|[12][0-9]|0[1-9])\\.(1[0-2]|0[1-9]))\\.([0-2][0-9]{3}|[0-9]{2})$",
|
||||
"^(?:(1[0-2]|0[1-9])\/(3[01]|[12][0-9]|0[1-9])|(3[01]|[12][0-9]|0[1-9])\/(1[0-2]|0[1-9]))\/([0-2][0-9]{3}|[0-9]{2})$",
|
||||
"^(?:(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])|(3[01]|[12][0-9]|0[1-9])-(1[0-2]|0[1-9]))-([0-2][0-9]{3}|[0-9]{2})$",
|
||||
@ -142,17 +142,37 @@ const STRICT_DATE_REGEX = [
|
||||
"^(?:(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])|(3[01]|[12][0-9]|0[1-9])-(1[0-2]|0[1-9]))-([0-2][0-9]{3}|[0-9]{2})$"
|
||||
];
|
||||
|
||||
function fuzzydate(s/*:string*/, strictDate = false/*boolean*/)/*:Date*/ {
|
||||
function fuzzydate(s/*:string*/, strictDate/*string*/)/*:Date*/ {
|
||||
var o = new Date(s), n = new Date(NaN);
|
||||
|
||||
if(strictDate) {
|
||||
STRICT_DATE_REGEX.map(regex => {
|
||||
const matchStr = s.match(regex)
|
||||
var dateFormat = strictDate.toLowerCase().replace(/[.]|[-]/g, '/')
|
||||
|
||||
STRICT_DATE_REGEX
|
||||
.map(function (regex) {
|
||||
var regexTestString =
|
||||
var matchStr = regexTestString.test(s)
|
||||
|
||||
if(matchStr){
|
||||
s.replace(/[.]|[-]/g, '/')
|
||||
|
||||
if (dateFormat === "dd/mm") {
|
||||
var splitDate = s.split('/')
|
||||
var newDate = [s[1], s[0], s[2]]
|
||||
|
||||
s = newDate.join('/')
|
||||
|
||||
o = new Date(s)
|
||||
return o
|
||||
}
|
||||
|
||||
o = new Date(s)
|
||||
return o;
|
||||
};
|
||||
});
|
||||
})
|
||||
.filter(function (result) {
|
||||
return ((result !== undefined) && (result !== null))
|
||||
});
|
||||
|
||||
return n;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user