کد ملی
national-id-inputکامپوننتکد ملی دهرقمی با گروهبندی ۳-۶-۱ مثل روی کارت، اعتبارسنجی رقم کنترل و نگهداشتن صفر اول.
ده رقم، همانطور که روی کارت ملی چاپ شده
نصب
با CLI
اگر هنوز init نکردید، اول از راهنمای نصب پروژه را آماده کنید. بعد این دستور کامپوننت و وابستگیهاش را مینویسه.
$ npx vibefarsi add national-id-inputنصب دستی
محتوای تب «کد» را در
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)} />پراپها
| پراپ | نوع | پیشفرض | توضیح |
|---|---|---|---|
| value | string | - | ده رقم لاتین. رشته بمونه تا صفر اول حذف نشه. |
| onChange | (digits, valid) => void | - | رقمهای نرمالشده و نتیجهی اعتبارسنجی. |
نکتههای راستچین
- الگوریتم اینطوریه که رقمها ضرب در وزن ۱۰ تا ۲ جمع میشن و باقیمانده بر ۱۱ بررسی میشه. کدهای یکنواخت مثل ۱۱۱۱۱۱۱۱۱۱ رد میشن.
- خطا فقط بعد از رقم دهم نشان داده میشه تا هنگام تایپ مزاحم نباشه.