ExtensionMethod.NET Home of 874 C#, Visual Basic, F# and Javascript extension methods

CheckSheba

چک کردن شماره شبا وارد شده جهت درست بودن فرمت و الگوریتم آن

Source

public static class Helper{
	public static bool CheckSheba(string input, bool checkLenght)
        {
            if (input.IsNullOrEmptyOrWhiteSpace())
            {
                return false;
            }
            input = input.Replace(" ", "").ToLower();
            //بررسی رشته وارد شده برای اینکه در فرمت شبا باشد
            var isSheba = Regex.IsMatch(input, "^[a-zA-Z]{2}\\d{2} ?\\d{4} ?\\d{4} ?\\d{4} ?\\d{4} ?[\\d]{0,2}",
                RegexOptions.Compiled);

            if (!isSheba)
                return false;
            //طول شماره شبا را چک میکند کمتر نباشد
            if (input.Length < 26)
                return false;
            input = input.ToLower();
            //بررسی اعتبار سنجی اصلی شبا
            ////ابتدا گرفتن چهار رقم اول شبا
            var get4FirstDigit = input.Substring(0, 4);
            ////جایگزین کردن عدد 18 و 27 به جای آی و آر
            var replacedGet4FirstDigit = get4FirstDigit.ToLower().Replace("i", "18").Replace("r", "27");
            ////حذف چهار رقم اول از رشته شبا
            var removedShebaFirst4Digit = input.Replace(get4FirstDigit, "");
            ////کانکت کردن شبای باقیمانده با جایگزین شده چهار رقم اول
            var newSheba = removedShebaFirst4Digit + replacedGet4FirstDigit;
            ////تبدیل کردن شبا به عدد  - دسیمال تا 28 رقم را نگه میدارد
            var finalLongData = Convert.ToDecimal(newSheba);
            ////تقسیم عدد نهایی به مقدار 97 - اگر باقیمانده برابر با عدد یک شود این رشته شبا صحیح خواهد بود
            var finalReminder = finalLongData % 97;
            if (finalReminder == 1)
            {
                return true;
            }
            return false;
          
           
        }
}

Example

string txtSheba= "IR540560084788802245494001";
return txtSheba.CheckSheba();

Author: Reza Faghani

Submitted on: 28 okt 2018

Language: C#

Type: System.String

Views: 5448