اعتبارسنجی فرمت تاریخ شمسی با Regular Expression در ASP.NET MVC

اعتبارسنجی تاریخ شمسی در ASP.NET MVC
اعتبارسنجی تاریخ شمسی در ASP.NET MVC

با عرض سلام خدمت تمامی همراهان مباحث آموزشی طراحی سایت با ASP.NET MVC ، در این مقاله آموزشی قصد دارم تا شما را با یک عبارت باقاعده که به منظور اعتبارسنجی تاریخ شمسی به کار می‌رود آشنا نماییم.

همانطور که می‌دانید Regular Expressions یا عبارات باقاعده از مجموعه ای از رشته ها و علائم تشکیل می شوند و در زمینه اعتبارسنجی رشته ها به برنامه نویسان کمک بسیار شایانی می‌نمایند.

در این مقاله آموزشی خواهید آموخت که چگونه با استفاده از Regular Expression تاریخ شمسی را اعتبارسنجی کنید. و خواهید دید که این عبارت باقاعده تا چه اندازه در پروژه های برنامه نویسی شما مفید و کارآمد است .

این عبارت باقاعده فرمت تاریخ شمسی را از نظر روز ، ماه، سال و همچنین وجود کاراکتر اسلش ‘/’ بین روز و ماه و سال اعتبارسنجی می‌کند و همچنین از تاریخ با اعداد فارسی و تاریخ با اعداد لاتین پشتیبانی می‌کند . درصورتی که می‌خواهید عبارت باقاعده تنها تاریخ شمسی وارد شده با اعداد لاتین را به عنوان رشته معتبر بشناسید می توانید اعداد فارسی را از رشته Regular Expression که در کد زیر ذکر شده حذف نمایید.

برای استفاده از این عبارت با قاعده در ASP.NET MVC ابتدا یک پروژه از نوع MVC بسازید سپس یک کلاس برای ایجاد ViewModel به پروژه ی خود اضافه نمایید.

کدهای مربوط به ViewModel

 public class MyViewModel
    {
        [RegularExpression(@"^$|^([1۱][۰-۹ 0-9]{3}[/\/]([0 ۰][۱-۶ 1-6])[/\/]([0 ۰][۱-۹ 1-9]|[۱۲12][۰-۹ 0-9]|[3۳][01۰۱])|[1۱][۰-۹ 0-9]{3}[/\/]([۰0][۷-۹ 7-9]|[1۱][۰۱۲012])[/\/]([۰0][1-9 ۱-۹]|[12۱۲][0-9 ۰-۹]|(30|۳۰)))$", ErrorMessage = "تاریخ وارد شده نامعتبر است.")]
        public string Date { get; set; }
    }

با استفاده از عبارت باقاعده ذکر شده در کد بالا قادرخواهید بود تاریخ شمسی را در پروژه های پرز اعتبارسنجی کنید . برای درک بهتر نحوه عملکرد عبارت باقاعده بالا به مثال های زیر توجه کنید تا متوجه شوید که عبارت باقاعده بالا چه فرمت هایی از تاریخ را به عنوان تاریخ معتبر و چه فرمت هایی را به عنوان تاریخ نامعتبر می‌‌شناسد.

  • نمونه هایی از تاریخ های معتبر :۱۳۹۶/۰۷/۱۰ – 1394/12/05
  • نمونه هایی از تاریخ های نامعتبر : 1396/13/12 – 1390/11/32 – 12/03/1390 – 1390-12-09

به پایان این مقاله آمورشی رسیدیم در صورتی که پیرامون مقالات آمورشی ASP.NET MVC سوالی داشتید حتما قسمت نظرات سایت میزفا مطرح کنید.

فیلم آموزشی asp.net core 2

آرزو ابراهیمی
بیش از 6 سال است که زمینه طراحی و توسعه سایت فعالیت می‌کنم، طراح و برنامه نویس انواع سامانه‌های تخصصی پزشکی، مناقصات، فروشگاهی و … بودم و هستم و هدفم در سایت میزفا ارائه اطلاعات بروز و ناب در زمینه طراحی سایت است. تا از این طریق بتونم تجربیات و دانسته های خودم را با تمامی علاقمندان به مباحث طراحی سایت به اشتراک بزارم .

فیلم آموزشی asp.net core 2

15 نظر

15 پاسخ

  1. سلام
    وقت بخیر
    regx شما کار نمیکنه ، هم بصورت datapicker شمسی و هم دستی امتحان میکنم ولی کار نکرد . پارامتر هم از نوع { public System.DateTime Date { get; set است

    1. سلام وقت شما هم بخیر
      برای اعتبارسنجی سمت کلاینت باید حتما فایل jquery رو توی پروژتون فراخوانی کرده باشید.

    2. سلام، همه رفرنس ها اکی هستن، به فرمت regx شما خطا میگیره و تاریخ نامعتبر است نشون میده

      1. سلام
        فرمت تاریخ ها حتما باید شبیه مثال های زیر باشه
        ۱۳۹۶/۰۷/۱۰
        1394/12/05
        فرمت تاریخ رو به درستی وارد میکنید؟

  2. سلام، ممنون از کدی که برای اعتبازسنجی تاریخ خورشیدی به اشتراک گذاشتید. اما من آنرا به یک متد تبدیل کردم که با استفاده از RegEx و متد IsMatch آن اعتبار تاریخ های خورشیدی بصورت رشته ای را به true و false برمی گرداند منتها برای 1398/06/31 که معتبرست false برگرداند!

    1. ببخشید، اشتباه شد! برای تاریخ مذکور درست کار می کند و بسیار عالیست! مجددا ممنون بابت به اشتراک گذاشتن این کد مهم و ضروری!

      1. سلام قاسم. خوشحالیم مورد استفاده شما قرار گرفته. ممنونم از حضورت در سایت ما. موفق باشی

    1. سلام بله می تونید فقط datapicker باید برای تاریخ شمسی باشه.

  3. سلام ازتون خیلی ممنونم . داشتم دقیقا دنبال همچین چیزی میگشتم که ب سایت شما وارد شدم . ممنون . موفق باشید

  4. عالی بود . ممنون بابت آموزش های مفیدی که منتشر کرده اید. با آرزوی موفقیت

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

حداکثر حجم فایل برای آپلود: 1 مگابایت. فایل‌های مجاز برای آپلود: عکس, ویس, ویدیو, ورد یا پی دی اف, فایل متنی, زیپ. شما می‌تونید برای بهتر پرسیدن سوالتون، عکس یا ویس یا حتی فیلم در بخش نظرات میزفا آپلود کنید. برای ضبط ویس می‌تونید از خود واتس آپ استفاده کنید و بعد اینجا آپلود کنید و برای ارسال عکس هم کافی هست اسکرین شات بگیرید. Drop file here

با موفقیت ثبت شد، میزفا از شما برای عضویت در خبرنامه هفتگی تشکر میکند.

عضویت در خبرنامه هفتگی برای دریافت:

  • فیلم و مقاله رایگان سئو
  • آموزش‌های UX ، GA و GTM
  • مقاله های تخصصی ASP.NET Core
  • اطلاع رسانی از محصولات
فیلم آموزشی asp.net core 2
ترک میزفا خوب نیست!
معرفی جامع‌ترین ابزار سئو در ایران
بالای ۱۰ هزار عضو
PHZpZGVvIHdpZHRoPSI2MDAiIGhlaWdodD0iMzUwIiBwb3N0ZXI9Imh0dHBzOi8vbWl6ZmEuY29tL2Jsb2cvd3AtY29udGVudC91cGxvYWRzLzIwMjMvMDUvcG9zdGVyLW1pemZhLXRvb2xzLXZpZGVvLW1pbi5wbmciIGNvbnRyb2xzIHByZWxvYWQ9Im5vbmUiPiANCiAgIDxzb3VyY2Ugc3JjPSJodHRwczovL21pemZhLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA1L21pemZhX3Rvb2xzXzcyMHAubXA0IiB0eXBlPSJ2aWRlby9tcDQiPg0KPC92aWRlbz4=