work in progress on custom fields
This commit is contained in:
parent
19f0c1bd97
commit
e230510b72
5 changed files with 224 additions and 14 deletions
65
shared/fields.js
Normal file
65
shared/fields.js
Normal file
|
@ -0,0 +1,65 @@
|
|||
'use strict';
|
||||
|
||||
function parseDate(type, text) {
|
||||
const isUs = type === 'us';
|
||||
const trimmedText = text.trim();
|
||||
|
||||
// try international format first YYYY-MM-DD
|
||||
const parts = trimmedText.match(/^(\d{4})\D+(\d{2})(?:\D+(\d{2})\b)$/);
|
||||
let day, month, year;
|
||||
let value;
|
||||
|
||||
if (parts) {
|
||||
year = Number(parts[1]) || 2000;
|
||||
month = Number(parts[2]) || 0;
|
||||
day = Number(parts[3]) || 0;
|
||||
value = new Date(Date.UTC(year, month - 1, day));
|
||||
} else {
|
||||
const parts = trimmedText.match(/^(\d+)\D+(\d+)(?:\D+(\d+)\b)$/);
|
||||
if (!parts) {
|
||||
value = null;
|
||||
} else {
|
||||
day = Number(parts[isUs ? 2 : 1]);
|
||||
month = Number(parts[isUs ? 1 : 2]);
|
||||
year = Number(parts[3]);
|
||||
|
||||
if (!day || !month) {
|
||||
value = null;
|
||||
} else {
|
||||
value = new Date(Date.UTC(year, month - 1, day));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
function parseBirthday(type, text) {
|
||||
const isUs = type === 'us';
|
||||
const trimmedText = text.trim();
|
||||
|
||||
let day, month, year;
|
||||
let value;
|
||||
|
||||
const parts = trimmedText.match(/^(\d+)\D+(\d+)$/);
|
||||
if (!parts) {
|
||||
value = null;
|
||||
} else {
|
||||
day = Number(parts[isUs ? 2 : 1]);
|
||||
month = Number(parts[isUs ? 1 : 2]);
|
||||
|
||||
if (!day || !month) {
|
||||
value = null;
|
||||
} else {
|
||||
value = new Date(Date.UTC(2000, month - 1, day));
|
||||
}
|
||||
}
|
||||
console.log(value);
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
parseDate,
|
||||
parseBirthday
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue