کد ملی

national-id-inputکامپوننت

کد ملی ده‌رقمی با گروه‌بندی ۳-۶-۱ مثل روی کارت، اعتبارسنجی رقم کنترل و نگه‌داشتن صفر اول.

ده رقم، همان‌طور که روی کارت ملی چاپ شده

نصب

  1. با CLI

    اگر هنوز init نکردید، اول از راهنمای نصب پروژه را آماده کنید. بعد این دستور کامپوننت و وابستگی‌هاش را می‌نویسه.

    $ npx vibefarsi add national-id-input
  2. نصب دستی

    محتوای تب «کد» را در components/ui/national-id-input.tsx بگذارید.

    $ npm i lucide-react
    کپی کل فایلregistry json

استفاده

usage.tsx
1import { NationalIdInput } from "@/components/ui/national-id-input"23<NationalIdInput onChange={(digits, valid) => setNationalId(valid ? digits : null)} />

پراپ‌ها

پراپنوعپیش‌فرضتوضیح
valuestring-ده رقم لاتین. رشته بمونه تا صفر اول حذف نشه.
onChange(digits, valid) => void-رقم‌های نرمال‌شده و نتیجه‌ی اعتبارسنجی.

نکته‌های راست‌چین

  • الگوریتم این‌طوریه که رقم‌ها ضرب در وزن ۱۰ تا ۲ جمع میشن و باقی‌مانده بر ۱۱ بررسی میشه. کدهای یکنواخت مثل ۱۱۱۱۱۱۱۱۱۱ رد میشن.
  • خطا فقط بعد از رقم دهم نشان داده میشه تا هنگام تایپ مزاحم نباشه.