کد ملی

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-رقم‌های نرمال‌شده و نتیجه‌ی اعتبارسنجی.

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

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