rodrigosantosbr

Date Regex

Jan 15th, 2019
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!

Site: https://regex101.com/


1) validates a yyyy-mm-dd, yyyy mm dd, or yyyy/mm/dd date

1.1) Expression:

^\d{4}[\-\/\s]?((((0[13578])|(1[02]))[\-\/\s]?(([0-2][0-9])|(3[01])))|(((0[469])|(11))[\-\/\s]?(([0-2][0-9])|(30)))|(02[\-\/\s]?[0-2][0-9]))$
1986-01-02
1986 02 03
2019/05/01
24/08/1986

1.2) Javascript

var re = /^\d{4}[\-\/\s]?((((0[13578])|(1[02]))[\-\/\s]?(([0-2][0-9])|(3[01])))|(((0[469])|(11))[\-\/\s]?(([0-2][0-9])|(30)))|(02[\-\/\s]?[0-2][0-9]))$/;
var term1 = "1986-01-02";
var term2 = "1986 02 03";
var term3 = "2019/05/01";
var term4 = "24/08/1986";

if (re.exec(term1)) {
    console.log("term1 Valid");
}
else {
    console.log("term1 Invalid");
}

if (re.exec(term2)) {
    console.log("term2 Valid");
}
else {
    console.log("term2 Invalid");
}

if (re.exec(term3)) {
    console.log("term3 Valid");
}
else {
    console.log("term3 Invalid");
}

if (re.exec(term4)) {
    console.log("term4 Valid");
}
else {
    console.log("term4 Invalid");
}

2) This pattern mathces the following date formats: DDMMMYY,DDMMMYYYY,DDMMMYY. The Pattern matches on leap year dates as well

2.1) Expression:

^(d{0}|(31(?!(FEV|ABR|JUN|SET|NOV)))|((30|29)(?!FEV))|(29(?=FEV(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)))))|(29(?=FEV(((0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)))))|(0?[1-9])|1\d|2[0-8])(JAN|FEV|MAR|MAI|ABR|JUL|JUN|AGO|OUT|SET|NOV|DEZ)((1[6-9]|[2-9]\d)\d{2}|\d{2}|d{0})$

2.2) Javascript:

var re = /^(d{0}|(31(?!(FEV|ABR|JUN|SET|NOV)))|((30|29)(?!FEV))|(29(?=FEV(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)))))|(29(?=FEV(((0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)))))|(0?[1-9])|1\d|2[0-8])(JAN|FEV|MAR|MAI|ABR|JUL|JUN|AGO|OUT|SET|NOV|DEZ)((1[6-9]|[2-9]\d)\d{2}|\d{2}|d{0})$/;
var term1 = "12MAR02";
var term2 = "28FEV2007";
var term3 = "30FEV2007";
var term4 = "00ABR";
var term5 = "01ABR";

if (re.exec(term1)) {
    console.log(term1+": Valid");
}
else {
    console.log(term1+": Invalid");
}

if (re.exec(term2)) {
    console.log(term2+": Valid");
}
else {
    console.log(term2+": Invalid");
}

if (re.exec(term3)) {
    console.log(term3+": Valid");
}
else {
    console.log(term3+": Invalid");
}

if (re.exec(term4)) {
    console.log(term4+": Valid");
}
else {
    console.log(term4+": Invalid");
}

if (re.exec(term5)) {
    console.log(term5+": Valid");
}
else {
    console.log(term5+": Invalid");
}

3) Matches dates with the following format: MMDDYYYY

  • Month - either MM (like 01) or M (like 1) - from 1 to 12
  • Day - either DD (like 01) or D ( like 1) - from 1 to 31
  • Year - either YYYY ( like 1998) or YY (like 98)
  • Separater - either - or /
var re = /^([1][12]|[0]?[1-9])[\/-]([3][01]|[12]\d|[0]?[1-9])[\/-](\d{4}|\d{2})$/;
var term1 = "1-25-2002";
var term2 = "01/25/2002";
var term3 = "11/32/2002";
var term4 = "01.25.2002";

if (re.exec(term1)) {
    console.log(term1+": Valid");
}
else {
    console.log(term1+": Invalid");
}

if (re.exec(term2)) {
    console.log(term2+": Valid");
}
else {
    console.log(term2+": Invalid");
}

if (re.exec(term3)) {
    console.log(term3+": Valid");
}
else {
    console.log(term3+": Invalid");
}

if (re.exec(term4)) {
    console.log(term4+": Valid");
}
else {
    console.log(term4+": Invalid");
}
Add Comment
Please, Sign In to add comment