کد ملی
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 | - | رقمهای نرمالشده و نتیجهی اعتبارسنجی. |
نکتههای راستچین
- الگوریتم اینطوریه که رقمها ضرب در وزن ۱۰ تا ۲ جمع میشن و باقیمانده بر ۱۱ بررسی میشه. کدهای یکنواخت مثل ۱۱۱۱۱۱۱۱۱۱ رد میشن.
- خطا فقط بعد از رقم دهم نشان داده میشه تا هنگام تایپ مزاحم نباشه.