BzBankInput / IranValidation
ابزار ایرانی
تقویم شمسی، اعتبارسنجی کد ملی و شبا و کارت، و اینپوت آماده ی شماره های بانکی.
دکمهفرم و اینپوتگروه اینپوتگروه دکمهانتخاب تاریختکمیل خودکارکارتنمایشلودینگدیالوگاعلانپیام عملیاتمنو کشوییکانتکس منوصفحه بندیلایت باکسدرختدیتاگریدنمودارتب و آکاردیوننویگیشن بارسایدبارتایم لاینویزارداسلایدرآپلودرادیتور متنتقویمابزار ایرانی
کامپوننتی پیدا نشد.
تقویم شمسی
نمای ماهانه با رویدادهای رنگی و تشخیص تعطیلات.
شیدسچپج
جلسه تیم
انتخاب: 1405/05/20
@using BzCore.Components.Calendar
@using BzCore.Enums
<BzCalendarView SelectedDate="_picked"
OnDayClick="@(d => _picked = d)"
Events="_events"
Calendar="BzCalendarType.Jalali"
ShowHolidays="true" />
<p>انتخاب: @_picked.ToString("yyyy/MM/dd")</p>
@code {
private DateTime _picked = DateTime.Today;
// BzCalendarEvent(date, title, color)
private List<BzCalendarEvent> _events = new()
{
new(DateTime.Today, "جلسه تیم", BzColor.Primary),
new(DateTime.Today.AddDays(2), "تحویل پروژه", BzColor.Danger),
new(DateTime.Today.AddDays(5), "انتشار نسخه", BzColor.Success),
};
}اعتبارسنجی زنده
کلاس استاتیک IranValidation بدون هیچ کامپوننتی هم قابل استفاده است — مثلا در سرویس ها.
کد ملی
موبایل
شماره کارت
شبا
| متد | توضیح |
|---|---|
IsNationalCode(s) | کد ملی 10 رقمی با رقم کنترلی |
IsMobile(s) | شماره موبایل ایران |
IsBankCard(s) | کارت 16 رقمی با الگوریتم لان |
GetCardBank(s) | نام بانک از روی شماره کارت |
IsIban(s) | شماره شبا با بررسی استاندارد mod97 |
GetIbanBank(s) | نام بانک از روی شبا |
@using BzCore.Components.Input
@using BzCore.Enums
<BzInput TValue="string" @bind-Value="_nc" Label="کد ملی"
CharFilter="BzCharFilter.NumberOnly" MaxLength="10"
UpdateTrigger="BzUpdateTrigger.OnInput" StartIcon="fa-solid fa-id-card" />
<span class="iz @(string.IsNullOrEmpty(_nc) ? "" : (IranValidation.IsNationalCode(_nc) ? "ok" : "bad"))">
@(string.IsNullOrEmpty(_nc) ? "" : (IranValidation.IsNationalCode(_nc) ? "معتبر" : "نامعتبر"))
</span>
<BzInput TValue="string" @bind-Value="_card" Label="شماره کارت"
Mode="BzInputMode.Mask" Mask="####-####-####-####"
UpdateTrigger="BzUpdateTrigger.OnInput" />
@if (!string.IsNullOrEmpty(_card))
{
<span>
@(IranValidation.IsBankCard(_card) ? "معتبر" : "نامعتبر")
@if (IranValidation.GetCardBank(_card) is { } bank)
{
<text> — بانک @bank</text>
}
</span>
}
@code {
private string? _nc;
private string? _card;
}
@*
IranValidation is a plain static class — use it anywhere, even outside Blazor:
IranValidation.IsNationalCode(s)
IranValidation.IsMobile(s)
IranValidation.IsBankCard(s) / GetCardBank(s)
IranValidation.IsIban(s) / GetIbanBank(s)
On your models you can use the attributes instead:
[NationalCode] [IranMobile] [Sheba] [BankCard]
*@اینپوت شماره های بانکی و هویتی
BzBankInput همه ی کارهای بالا را خودش انجام میده: ماسک، اعتبارسنجی و تشخیص بانک. فقط Type را عوض کنید.
CardNumber
---
محدود به چند بانک
---
Iban
IR-----
AccountNumber
---
NationalCode
--
LegalId
--
| Type | توضیح |
|---|---|
CardNumber | کارت 16 رقمی، الگوریتم luhn + تشخیص بانک |
Iban | شبا، mod-97 + تشخیص بانک |
AccountNumber | شماره حساب با طول دلخواه (Length) |
NationalCode | کد ملی؛ با ShowLocation استان و شهر را هم میده |
LegalId | شناسه ملی اشخاص حقوقی (11 رقم) |
ForeignerId | شناسه فراگیر اتباع خارجی |
Passport | شماره پاسپورت |
Custom | فرمت دلخواه |
@using BzCore.Components.Form
@using BzCore.Enums
@* Card number — masks, Luhn-checks and detects the bank on its own *@
<BzBankInput Type="BzIdentifierType.CardNumber" @bind-Value="_card" Label="شماره کارت" />
@* Only accept cards from certain banks *@
<BzBankInput Type="BzIdentifierType.CardNumber" @bind-Value="_card2"
AllowedBanks="@(new(){ BzBank.Mellat, BzBank.Melli })"
Label="فقط کارت ملت یا ملی" />
@* IBAN — mod-97 checked, bank detected *@
<BzBankInput Type="BzIdentifierType.Iban" @bind-Value="_sheba" Label="شماره شبا" />
@* Account number with a fixed length *@
<BzBankInput Type="BzIdentifierType.AccountNumber" @bind-Value="_acct" Length="13"
Label="شماره حساب (13 رقم)" ShowBank="false" />
@* National code — ShowLocation also resolves the issuing province and city *@
<BzBankInput Type="BzIdentifierType.NationalCode" @bind-Value="_nc"
ShowLocation="true" ShowBank="false"
Label="کد ملی (با تشخیص استان و شهر)" />
@* Legal entity national ID *@
<BzBankInput Type="BzIdentifierType.LegalId" @bind-Value="_legal"
ShowBank="false" Label="شناسه ملی حقوقی" />
@code {
private string? _card, _card2, _sheba, _acct, _nc, _legal;
}