@narmafzam/jalali-datepicker
Version:
just a jalali-datepicker
36 lines (28 loc) • 1.05 kB
JavaScript
class JalaliDateParser {
constructor() {
this.pattern = {
persian: /^[1-4]\d{3}(\/|-|\.)((0?[1-6](\/|-|\.)((3[0-1])|([1-2][0-9])|(0?[1-9])))|((1[0-2]|(0?[7-9]))(\/|-|\.)(30|([1-2][0-9])|(0?[1-9]))))$/g
};
}
parse(inputString) {
let that = this,
persianDateArray,
persianPat = new RegExp(that.pattern.persian);
String.prototype.toEnglishDigits = function () {
let charCodeZero = '۰'.charCodeAt(0);
return this.replace(/[۰-۹]/g, function (w) {
return w.charCodeAt(0) - charCodeZero;
});
};
inputString = inputString.toEnglishDigits();
if (persianPat.test(inputString)) {
/* eslint-disable no-useless-escape */
persianDateArray = inputString.split(/\/|-|\,|\./).map(Number);
/* eslint-enable no-useless-escape */
return persianDateArray;
} else {
return undefined;
}
}
}
module.exports = JalaliDateParser;