با تشکر ازپاسخ شما
من درasp.net در سمت سرور به عنوان مثال برای تکس باکسی که کاربردر آن ایمیلش را وارد خواهد کرد اینگونه کنترل کردم برای کد ملی چطور کنترل کنم
else if (!Regex.IsMatch(txtemail.Text, @"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*")) { lblmessage.Text = "ایمیل وارد شده معتبر نمی باشد"; lblmessage.Visible = true; }
از کلاس زیر استفاده کنید
public static class Helpers { /// <summary> /// تعیین معتبر بودن کد ملی /// </summary> /// <param name="nationalCode">کد ملی وارد شده</param> /// <returns> /// در صورتی که کد ملی صحیح باشد خروجی <c>true</c> و در صورتی که کد ملی اشتباه باشد خروجی <c>false</c> خواهد بود /// </returns> /// <exception cref="System.Exception"></exception> public static Boolean IsValidNationalCode(this String nationalCode) { //در صورتی که کد ملی وارد شده تهی باشد if (String.IsNullOrEmpty(nationalCode)) throw new Exception("لطفا کد ملی را صحیح وارد نمایید"); //در صورتی که کد ملی وارد شده طولش کمتر از 10 رقم باشد if (nationalCode.Length != 10) throw new Exception("طول کد ملی باید ده کاراکتر باشد"); //در صورتی که کد ملی ده رقم عددی نباشد var regex = new Regex(@"\d{10}"); if (!regex.IsMatch(nationalCode)) throw new Exception("کد ملی تشکیل شده از ده رقم عددی میباشد؛ لطفا کد ملی را صحیح وارد نمایید"); //در صورتی که رقمهای کد ملی وارد شده یکسان باشد var allDigitEqual = new[]{"0000000000","1111111111","2222222222","3333333333","4444444444","5555555555","6666666666","7777777777","8888888888","9999999999"}; if (allDigitEqual.Contains(nationalCode)) return false; //عملیات شرح داده شده در بالا var chArray = nationalCode.ToCharArray(); var num0 = Convert.ToInt32(chArray[0].ToString())*10; var num2 = Convert.ToInt32(chArray[1].ToString())*9; var num3 = Convert.ToInt32(chArray[2].ToString())*8; var num4 = Convert.ToInt32(chArray[3].ToString())*7; var num5 = Convert.ToInt32(chArray[4].ToString())*6; var num6 = Convert.ToInt32(chArray[5].ToString())*5; var num7 = Convert.ToInt32(chArray[6].ToString())*4; var num8 = Convert.ToInt32(chArray[7].ToString())*3; var num9 = Convert.ToInt32(chArray[8].ToString())*2; var a = Convert.ToInt32(chArray[9].ToString()); var b = (((((((num0 + num2) + num3) + num4) + num5) + num6) + num7) + num8) + num9; var c = b%11; return (((c < 2) && (a == c)) || ((c >= 2) && ((11 - c) == a))); } }
نحوه استفاده
if(TextBoxNationalCode.Text.IsValidNationalCode ()) //some code //OR if(Helpers.IsValidNationalCode (TextBoxNationalCode.Text)) //some code
با تشکر
در موقع استفاده از
if(Helpers.IsValidNationalCode (TextBoxNationalCode.Text))
به قسمت
IsValidNationalCode
ارور میده
مثل نمونه ای که قرار دادم استفاده کنید
اون مثال Extenssion Method است
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)