اعتبارسنجی کدملی با استفاده از عبارات باقاعده (Regular Expression) در Asp.net core
با سلام خدمت تمامی دوستان
اعتبارسنجی کدملی با استفاده از عبارات باقاعده (Regular Expression) در Core
درست و نادرست بودن کدملی قبل از ذخیره در دیتابیس میخوام از این قابلیت استفاده کنم در Core
لطفا راهنمایی بفرمایید چجوری میتونم استفاده کنم
باتشکر از سایت پرس نت
پاسخ هوش مصنوعی
برای اعتبارسنجی کد ملی در ASP.NET Core با استفاده از عبارات باقاعده، شما می توانید از کلاس RegularExpressionAttribute استفاده کنید. در زیر یک نمونه کد برای پیاده سازی این نوع اعتبارسنجی آورده شده است:
using System.ComponentModel.DataAnnotations;
public class Person
{
[Required(ErrorMessage = "کد ملی الزامی است")]
[RegularExpression(@"^\d{10}$", ErrorMessage = "کد ملی باید 10 رقم باشد")]
public string NationalCode { get; set; }
}
در این کد:
- ویژگی
RegularExpressionبرای بررسی اینکه کد ملی فقط شامل 10 رقم باشد استفاده شده است. - ویژگی
Requiredبرای اطمینان از ارایه کد ملی استفاده شده است.
سپس می توانید از این کلاس در کنترلر و ویو استفاده کنید. مثلا در کنترلر:
public IActionResult Create(Person person)
{
if (ModelState.IsValid)
{
// ذخیره سازی اطلاعات در دیتابیس
}
return View(person);
}
پاسخ هوش مصنوعی
برای اعتبارسنجی کد ملی در ASP.NET Core با استفاده از عبارات باقاعده، می توانید از کلاس Regex در فضای نام System.Text.RegularExpressions استفاده کنید. در زیر یک مثال ساده آورده شده است:
using System;
using System.Text.RegularExpressions;
public class NationalCodeValidator
{
public static bool IsValid(string nationalCode)
{
// الگوی عبارات باقاعده برای کد ملی
string pattern = @"^\d{10}$";
return Regex.IsMatch(nationalCode, pattern);
}
}
در این مثال، تابع IsValid یک رشته به عنوان ورودی می گیرد و بررسی می کند که آیا این رشته شامل 10 رقم است یا خیر. شما می توانید این تابع را قبل از ذخیره کد ملی در دیتابیس فراخوانی کنید.
به عنوان مثال، برای استفاده از این تابع:
string nationalCode = "1234567890";
bool isValid = NationalCodeValidator.IsValid(nationalCode);
if (isValid)
{
// کد ملی معتبر است و می توانید آن را ذخیره کنید
}
else
{
// کد ملی نامعتبر است و باید خطا نمایش دهید
}
اطمینان حاصل کنید که این اعتبارسنجی را با دیگر مباحث اعتبارسنجی نیز ترکیب کنید تا از معتبر بودن کد ملی اطمینان حاصل کنید.
کد ملی یه فرمول داره. بنابراین برای اینکه صحت کد ملی رو بررسی کنید باید شماره ملی رو در فرمول بذارید و ببینید درست هست یا نه. از عبارات با قاعده برای بررسی صحت فرمت رشته ها استفاده میشه نه برای پیاده سازی فرمول.
کد ملی یه رشته 10 کاراکتری هست که اگر بخواید توسط عبارات با قاعده بررسیش کنید باید بررسی کنید که یک رشته 10 کاراکتری داشته باشید که فقط هم شامل عدد هست. همین !
""^(?!(\d)\1{9})\d{10}$"
یا عبارت زیر هم میتونید استفاده کنید که فقط بررسی 10 رقمه بودن هست.
^([0-9]){10}$
فرمول بررسی کد ملی در سی شارپ
try
{
char[] chArray = this.textBox1.Text.ToCharArray();
int[] numArray = new int[chArray.Length];
for (int i = 0; i < chArray.Length; i++)
{
numArray[i] = (int)char.GetNumericValue(chArray[i]);
}
int num2 = numArray[9];
switch (this.textBox1.Text)
{
case "0000000000":
case "1111111111":
case "22222222222":
case "33333333333":
case "4444444444":
case "5555555555":
case "6666666666":
case "7777777777":
case "8888888888":
case "9999999999":
MessageBox.Show("کد ملی وارد شده صحیح نمی باشد");
break;
}
int num3 = ((((((((numArray[0] * 10) + (numArray[1] * 9)) + (numArray[2] * 8)) + (numArray[3] * 7)) + (numArray[4] * 6)) + (numArray[5] * 5)) + (numArray[6] * 4)) + (numArray[7] * 3)) + (numArray[8] * 2);
int num4 = num3 - ((num3 / 11) * 11);
if ((((num4 == 0) && (num2 == num4)) || ((num4 == 1) && (num2 == 1))) || ((num4 > 1) && (num2 == Math.Abs((int)(num4 - 11)))))
{
MessageBox.Show("کد ملی صحیح می باشد");
}
else
{
MessageBox.Show("کد ملی نامعتبر است");
}
}
catch (Exception)
{
MessageBox.Show("لطفا یک عدد 10 رقمی وارد کنید");
}
فرمول کد ملی توی سی شارپ رو براتون قرار دادم. با کمی تغییرات به راحتی میتونید توی Asp هم استفاده کنید.
- آموزش استفاده از پلاگین گردونه شانس در Asp.net core به همراه سورس
- نمایش متن به صورت فرمت شده در CkEditor
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- نحوه لایه بندی پروژه Core و اضافه کردن به IIS
- ارسال ایمیل در Asp.net core
- آیا میشه در mvc core از کامپونت استفاده کرد
- آپلود فایل در Asp.net core چگونه است؟
- حذف کامل یک رکورد در جدول ریلیشن شده
- اشکال در آپلود فایل ویدیو در mvc core 2