استفاده از عبارات منظم جهت اعتبار سنجی داده ها در سمت سرور
  همانطور که می دانید استفاده از عبارات منظم (Regular Expressions) یکی از موثرترین روش ها جهت اعتبارسنجی داده ها می باشد...
   ASP.NET
   ۲۵۵۱۹
   این مقاله حاوی فایل ضمیمه نمی باشد
   مرتضی صحراگرد
   ۱۳۸۶/۱۰/۲
ارسال لینک صفحه برای دوستان ارسال لینک صفحه برای دوستان  اضافه کردن به علاقه مندیها اضافه کردن به علاقه مندیها   نسخه قابل چاپ نسخه قابل چاپ

 

همانطور که مي دانيد استفاده از عبارات منظم (Regular Expressions) يکي از موثرترين روش ها جهت اعتبارسنجي داده ها مي باشد.

معمول ترين شکل استفاده ازآن، در قالب کنترل هاي اعتبارسنجي (Regular Expression Validators) مي باشد که معولا در فرم ها از آن ها استفاده مي شود.

هنگام استفاده از کنترل هاي اعتبار سنجي در فرم هاي وب، در سمت سرور با استفاده از شرط IsValid مي توان صحت داده هاي ورودي توسط کاربر را کنترل نمود.

ولي گاهي اوقات سناريو به اين سادگي نمي باشد. تصور کنيد که در حال ارسال خبرنامه براي مشترکين مي باشيد. در نتيجه ايميل کاربران را از محلي مانند ديتابيس مي خوانيد که در اين صورت نياز به اعتبارسنجي ايميل ها در سمت سرور داريد.

لذا بايد راهي براي اعتبار سنجي  اين گونه عبارات به طور دستي در سمت سرور پيدا کنيد.

تذکر :

يه ياد داشته باشيد که عبارات منظم در زبان جاوا اسکريپت با عبارات منظم در ASP.NET يکسان نمي باشند و بايد هر کدام در محل مناسب خود استفاده شوند. مثلا شما نمي توانيد از عبارت منظمي که در زبان جاوا اسکريپت براي اعتبار سنجي ايميل استفاده مي شود، در سمت سرور هم استفاده نماييد.

راه حل ، استفاده از عبارات منظم موجود در کلاس Regex که در فضاي نامي System.Text.RegularExpressions قرار دارد، مي باشد.

در قطعه کد زير نحوه استفاده از اين کلاس جهت اعتبارسنجي ايميل را مشاهده مي نماييد.


if (System.Text.RegularExpressions.Regex.IsMatch("email@sample.com", @"^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$"))
{
// Email is vali
}
else
{
// Email is not vali
}

همانطور که ملاحظه کرديد، ما از متد IsMatch در کلاس Regex استفاده نموده ايم.

 اين متد دو پارامتر دريافت مي کند. پارامتر اول، عبارتي مي باشد که قصد داريم آن را اعتبارسنجي کنيم و پارامتر دوم، عبارت منظم مربوط به آن مي باشد.

تذکر :

در برنامه هاي تحت ويندوز نيز مي توانيد از اين روش جهت اعتبار سنجي داده  ها استفاده نماييد.

در ادامه چند عبارت منظم پرکاربرد را جهت استفاده شما معرفي مي کنم.

ايميل :


^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$

URL :


^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_]*)?$

اعداد صحيح مثبت :


^\d+$

موفق باشيد.