در حال آماده‌سازی

کارت شتاب، کد ملی، شناسهٔ ملی، کد اقتصادی، شبا، موبایل، تلفن ثابت و کد پستی، بدون وابستگی، در مرورگر، Node، Bun و Deno. ارقام فارسی و عربی خودکار به ارقام لاتین تبدیل می‌شوند.

نمونه

import {
  bankNameFaFromPan,
  isIranianPan,
  isValidIranianIban,
  isValidIranianMobile,
  isValidNationalCode,
} from "@pixevel/iran";

isIranianPan("6037-9911-2233-4455"); // true
bankNameFaFromPan("6037991122334455"); // "بانک ملی ایران"
isValidNationalCode("۰۰۱۳۵۴۲۴۱۹"); // true — Persian digits fold to ASCII
isValidIranianIban("IR49 0170 0000 0000 1234 5678 90"); // true
isValidIranianMobile("+989121234567"); // true

چه چیزی را بررسی می‌کند

کارت بانکی (شتاب)
16 رقم. الگوریتم لون جداگانه است و اجباری نیست.
isIranianPannormalizePanisLuhn
بانک صادرکننده
نخست پیشوند 8 رقمی نئوبانک‌ها، سپس IIN 6 رقمی.
bankFromPanbankNameFaFromPan
کد ملی
10 رقم با رقم کنترل رسمی؛ کدی که همهٔ رقم‌هایش یکسان باشد رد می‌شود.
isValidNationalCodenormalizeNationalCode
شناسهٔ ملی اشخاص حقوقی
11 رقم با رقم کنترل اشخاص حقوقی.
isValidLegalIdnormalizeLegalId
کد اقتصادی
12 رقم که همه یکسان نباشند. رقم کنترل عمومی ندارد.
isValidEconomicCodenormalizeEconomicCode
شبا (IBAN)
IR و 24 رقم، ISO 13616. اگر فقط 24 رقم چسبانده شود IR اضافه می‌شود.
isValidIranianIbannormalizeIbanformatIbanDisplay
موبایل
09 و سپس 9 رقم؛ ‎+98، ‎0098 و 9 ابتدایی یکسان می‌شوند.
isValidIranianMobilenormalizeMobileformatMobileDisplay
تلفن ثابت یا موبایل
11 رقم با صفر ابتدایی؛ ورودی حرف‌دار رد می‌شود و عدد هرگز کوتاه نمی‌شود.
isValidIranianPhonenormalizeIranianPhoneisValidIranianLandline
کد پستی
10 رقم، بدون صفر ابتدایی، نه همه یکسان.
isValidPostalCodenormalizePostalCode
نام فارسی اشخاص
حروف فارسی، نیم‌فاصله مجاز، 2 تا 100 نویسه؛ ي و ك عربی به ی و ک تبدیل می‌شوند.
isPersianPersonNamenormalizePersonName