با عرض سلام خدمت تمامی همراهان مباحث آموزشی طراحی سایت با 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 سوالی داشتید حتما قسمت نظرات سایت میزفا مطرح کنید.
15 پاسخ
سلام
وقت بخیر
regx شما کار نمیکنه ، هم بصورت datapicker شمسی و هم دستی امتحان میکنم ولی کار نکرد . پارامتر هم از نوع { public System.DateTime Date { get; set است
سلام وقت شما هم بخیر
برای اعتبارسنجی سمت کلاینت باید حتما فایل jquery رو توی پروژتون فراخوانی کرده باشید.
سلام، همه رفرنس ها اکی هستن، به فرمت regx شما خطا میگیره و تاریخ نامعتبر است نشون میده
سلام
فرمت تاریخ ها حتما باید شبیه مثال های زیر باشه
۱۳۹۶/۰۷/۱۰
1394/12/05
فرمت تاریخ رو به درستی وارد میکنید؟
سلام، ممنون از کدی که برای اعتبازسنجی تاریخ خورشیدی به اشتراک گذاشتید. اما من آنرا به یک متد تبدیل کردم که با استفاده از RegEx و متد IsMatch آن اعتبار تاریخ های خورشیدی بصورت رشته ای را به true و false برمی گرداند منتها برای 1398/06/31 که معتبرست false برگرداند!
ببخشید، اشتباه شد! برای تاریخ مذکور درست کار می کند و بسیار عالیست! مجددا ممنون بابت به اشتراک گذاشتن این کد مهم و ضروری!
سلام قاسم. خوشحالیم مورد استفاده شما قرار گرفته. ممنونم از حضورت در سایت ما. موفق باشی
میتونیم از هر datetime picker ی استفاده کنیم ؟
سلام بله می تونید فقط datapicker باید برای تاریخ شمسی باشه.
سلام ، تشکر
سلام خواهش میکنم ، موفق باشید.
سلام ازتون خیلی ممنونم . داشتم دقیقا دنبال همچین چیزی میگشتم که ب سایت شما وارد شدم . ممنون . موفق باشید
سلام خوش حالم براتون مفید بوده موفق باشید.
عالی بود . ممنون بابت آموزش های مفیدی که منتشر کرده اید. با آرزوی موفقیت
ممنونم … خوش حالم براتون مفید بوده.