مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

daneshmand

عضویت از 1393/12/11

کنترل ورود اطلاعات بوسیله کاربر

  • پنجشنبه 31 تیر 1395
  • 19:22
تشکر میکنم
باسلام وآرزوی موفقیت وقتی کدملی رواز کاربر می گیریم ومی خوایم در کدهای سمت سرو ورودی کاربر رو باado.netکنترل کنیم برای کد ملی چه کدی رو بنویسیم تااگه کاربر کد ملی رو اشتباه وارد کرد پیام بده

پاسخ های این پرسش

تعداد پاسخ ها : 5 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • پنجشنبه 31 تیر 1395
  • 19:26
کاربر سایت

daneshmand

عضویت از 1393/12/11

  • جمعه 1 مرداد 1395
  • 10:54

با تشکر ازپاسخ شما

من درasp.net در سمت سرور به عنوان مثال برای تکس باکسی که کاربردر آن ایمیلش را وارد خواهد کرد اینگونه کنترل کردم برای کد ملی چطور کنترل کنم

  else if (!Regex.IsMatch(txtemail.Text, @"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"))
        {
            lblmessage.Text = "ایمیل وارد شده معتبر نمی باشد";
            lblmessage.Visible = true;
        }

 

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • جمعه 1 مرداد 1395
  • 12:10

از کلاس زیر استفاده کنید

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

 

کاربر سایت

daneshmand

عضویت از 1393/12/11

  • جمعه 1 مرداد 1395
  • 13:41

با تشکر

در موقع استفاده از


if(Helpers.IsValidNationalCode (TextBoxNationalCode.Text))

به قسمت

IsValidNationalCode

ارور میده

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • جمعه 1 مرداد 1395
  • 13:43

مثل نمونه ای که قرار دادم استفاده کنید

اون مثال Extenssion Method است

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)