////ولیدیشن تاریخ function dateValidcheck(inputField1) { let persianNumbers = [/۰/g, /۱/g, /۲/g, /۳/g, /۴/g, /۵/g, /۶/g, /۷/g, /۸/g, /۹/g], arabicNumbers = [/٠/g, /١/g, /٢/g, /٣/g, /٤/g, /٥/g, /٦/g, /٧/g, /٨/g, /٩/g], fixNumbers = function (str) { if (typeof str === 'string') { for (var i = 0; i < 10; i++) { str = str.replace(persianNumbers[i], i).replace(arabicNumbers[i], i); } } return str; }; let getdate = inputField1.value; let m1, m2; let y1, y2, y3, y4; let d1, d2; let s1, s2; for (var i = 0; i < getdate.length; i++) { if (i === 0) { y1 = fixNumbers(getdate[i]); } if (i === 1) { y2 = fixNumbers(getdate[i]); } if (i === 2) { y3 = fixNumbers(getdate[i]); } if (i === 3) { y4 = fixNumbers(getdate[i]); } if (i === 4) { s1 = fixNumbers(getdate[i]); } if (i === 5) { m1 = fixNumbers(getdate[i]); } if (i === 6) { m2 = fixNumbers(getdate[i]); } if (i === 7) { s2 = fixNumbers(getdate[i]); } if (i === 8) { d1 = fixNumbers(getdate[i]); } if (i === 9) { d2 = fixNumbers(getdate[i]); } } let yRes = y1 + y2 + y3 + y4; let year = parseInt(yRes); let mRes = m1 + m2; let month = parseInt(mRes); let dRes = d1 + d2; let day = parseInt(dRes); let fixResult = yRes + s1 + mRes + s2 + dRes; let test1 = checkEnValid(inputField1.value); let isValid = /^([1][3-4][0-9][0-9][/])([0][1-9]|[1][0-2])([/])([0][1-9]|[1-2][0-9]|[3][0-1])$/.test(fixResult); if (isValid && test1) { start1valid = true; } else { if (inputField1.value != "") { start1valid = false; $('.alert-msg').show(); $('.alert-msg p').text('تاریخ را به درستی وارد نمائید'); setTimeout(function () { $('.alert-msg').hide(); $('.alert-msg p').text(''); }, 3500); } } return start1valid; } function checkEnValid(fixDate1) { let persianNumbers = [/۰/g, /۱/g, /۲/g, /۳/g, /۴/g, /۵/g, /۶/g, /۷/g, /۸/g, /۹/g], arabicNumbers = [/٠/g, /١/g, /٢/g, /٣/g, /٤/g, /٥/g, /٦/g, /٧/g, /٨/g, /٩/g], fixNumbers = function (str) { if (typeof str === 'string') { for (var i = 0; i < 10; i++) { str = str.replace(persianNumbers[i], i).replace(arabicNumbers[i], i); } } return str; }; let getdate = fixDate1; let m1, m2; let y1, y2, y3, y4; let d1, d2; for (let i = 0; i < getdate.length; i++) { if (i === 0) { y1 = fixNumbers(getdate[i]); } if (i === 1) { y2 = fixNumbers(getdate[i]); } if (i === 2) { y3 = fixNumbers(getdate[i]); } if (i === 3) { y4 = fixNumbers(getdate[i]); } if (i === 5) { m1 = fixNumbers(getdate[i]); } if (i === 6) { m2 = fixNumbers(getdate[i]); } if (i === 8) { d1 = fixNumbers(getdate[i]); } if (i === 9) { d2 = fixNumbers(getdate[i]); } } let yRes = y1 + y2 + y3 + y4; let year = parseInt(yRes); let mRes = m1 + m2; let month = parseInt(mRes); let dRes = d1 + d2; let day = parseInt(dRes); let kabiseh = false; if (month <= 6 && day > 31) { return false; } else if (month > 6 && month < 12 && day > 30) { return false; } else if (month === 12) { switch (year) { case 1346: kabiseh = true; break; case 1350: kabiseh = true; break; case 1354: kabiseh = true; break; case 1358: kabiseh = true; break; case 1362: kabiseh = true; break; case 1366: kabiseh = true; break; case 1370: kabiseh = true; break; case 1375: kabiseh = true; break; case 1379: kabiseh = true; break; case 1383: kabiseh = true; break; case 1387: kabiseh = true; break; case 1391: kabiseh = true; break; case 1395: kabiseh = true; break; case 1399: kabiseh = true; break; case 1403: kabiseh = true; break; case 1408: kabiseh = true; break; case 1412: kabiseh = true; break; case 1416: kabiseh = true; break; case 1420: kabiseh = true; break; case 1424: kabiseh = true; break; case 1428: kabiseh = true; break; case 1432: kabiseh = true; break; case 1436: kabiseh = true; break; case 1441: kabiseh = true; break; case 1445: kabiseh = true; break; default: kabiseh = false; } if (kabiseh == true && day > 30) { return false; } else if (kabiseh == false && day > 29) { return false; } else { return true; } } else { return true; } }