فرمت کارت و شبا
فاصلهگذاری نمایشی کارت و شبا؛ اعتبار را عوض نمیکند.
فقط فاصله و پیشوند؛ اعتبار Luhn/IBAN عوض نمیشود.
رقم وارد کنید.
مرتبط
شمارهٔ sixteen رقمی کارت و رشتهٔ IR شبا در اپ بانک اغلب با فاصلهٔ گروهی copy میشوند، اما بسیاری از فرمها، Excel، یا درگاههای قدیمی فاصله را reject میکنند — یا برعکس، بدون فاصله خواندن برای انسان سخت است. ابزار فرمت شماره کارت و شبا در FinAI فقط جداکنندهٔ بصری اضافه یا مرتب میکند: کارت به صورت چهار گروه چهار رقمی، شبا با پیشوند IR و گروههای چهار رقمی روی body. هیچ رقمی عوض نمیشود؛ Luhn روی PAN و bاقیماندهٔ ۹۷ روی IBAN ثابت میماند. محاسبه در مرورگر است و شماره کارت کامل برای «قشنگ کردن» به سرور FinAI ارسال نمیشود.
تفکیک «format» از «validate»
کاربران گاهی فکر میکنند اگر فرم خطا داد، format کردن «درستش» میکند. واقعیت: format validity را تغییر نمیدهد. اگر Luhn fail است، بعد از format هم fail است — فقط راحتتر میخوانید. مسیر checksum: اعتبارسنجی کارت و اعتبارسنجی شبا. format قبل یا بعد از validate بیتفاوت است چون validate فاصله را strip میکند.
اگر هدف واریز است، format آخرین لمس UX است؛ اول validate و تشخیص بانک از شبا برای family check. اگر هدف چاپ فاکتور است، format برای خوانایی کافی است بدون mod 97 روی فاکتور — ولی شبای چاپشده باید از منبع valid آمده باشد.
قواعد کارت ۱۶ رقمی
پس از نرمال ارقام (فارسی به لاتین، حذف خط تیره و space)، هر چهار رقم یک فاصله. digit هفدهم وجود ندارد در PAN استاندارد ایران؛ اگر ورودی غیر۱۶ رقم باشد، ابزار format محدود عمل میکند یا null — format جایگذاری رقم نمیکند. برای BIN preview، شش رقم اول بعد از format همان است؛ lookup strip میکند.
چرا ۴×۴
قرارداد UI بانکها و کارتخوانها در ایران و abroad مشابه است؛ مغز انسان چهار رقم را chunk میخواند. در PCI training گاهی گفته میشود روی رسید فقط ۴+۴+۴+۴ mask شود؛ format کامل برای internal doc است نه public channel.
قواعد شبا IR
ورودی با یا بدون IR؛ خروجی معمولاً IR + space + body با گروههای چهار رقمی. دو رقم کنترل IBAN بخش body هستند؛ split بصری آنها را از کد بانک جدا نمیکند مگر کاربر بداند خانهها را بشمارد. برای آموزش کد بانک، جدول کد و bank-from-sheba بهتر از format alone است.
format شبا mod 97 را محاسبه نمیکند. اگر فقط فاصله اشتباه بود (مثلاً سهتایی بهجای چهارتایی)، validate همان digits را میگیرد — پس format ابزار «تعمیر» نیست، «نمایش» است.
Excel و CSV
Excel گاهی شبا را scientific notation میکند یا صفر پیشرو را میبلعد. format بعد از fix کردن digits در notepad کمک میکند human proof بخوانید؛ ولی root fix export as text است. برای ساخت شبا از حساب، تولید شبا جداست.
- ستون را Text format کنید قبل از paste.
- از apostrophe در Excel برای force text استفاده کنید.
- بعد از import، validate یک نمونه ردیف.
پیامرسان و direction mark
copy از تلگرام گاهی LTR mark میچسباند؛ format فاصله اضافه میکند ولی hidden char را حذف نمیکند — validate-sheba strip گستردهتر دارد. workflow: paste در format برای دیدن ساختار، سپس validate برای checksum و hidden char handling.
حریم خصوصی
format client-side است. باز هم paste PAN کامل در گروه عمومی خطرناک است؛ format local risk را کم نمیکند. برای support ticket، mask کنید: ۶۱۰۴ ۳۳** **** ۱۲۳۴.
مقایسه با card-to-sheba و generate
کارت به شبا sheba نمیسازد؛ format فقط روی آنچه دارید. generate-sheba IBAN میسازد؛ خروجی را میتوانید format کنید برای PDF. ترتیب: generate → validate → format برای چاپ.
طراحی UX در محصولات خودتان
input mask در frontend میتواند live format کند؛ on submit digitsOnly بفرستید. FinAI tool الگوی minimal بدون mask سنگین است. accessibility: screen reader با space بهتر میخواند.
سناریوی فاکتور B2B
شبا در one line بدون IR چاپ شده؛ format با IR برای خوانایی. checksum همان است اگر digits تغییر نکرده. مشتری با اپ scan میکند — بعضی OCR فاصله را ignore میکند.
سناریوی آموزش کارمند
در slide آموزشی شبا formatشده نشان دهید؛ تمرین validate روی همان string با فاصله. تأکید: فاصله «معنی» ندارد برای شبکه.
خطاهای رایج
فکر کردن format invalid را valid میکند. نادرست. اضافه کردن IR دستی غلط. format IR را normalize میکند اگر ورودی درست باشد؛ IR جعلی با body غلط format زیبا ولی validate fail. تغییر رقم برای «تراز» گروهها. هرگز.
ارتباط با Luhn
Luhn روی ordered digits بدون space است. format فقط display layer. اگر automated test دارید، assert روی digitsOnly نه formatted string.
ارتباط با mod 97
همان story برای IBAN. استاندارد ISO 13616 فاصله را در checksum حساب نمیکند. bank-from-sheba بعد از strip همان slice کد بانک را میگیرد.
چند ابزار، یک رشته
pipeline پیشنهادی FinAI برای شبای دریافتی: format (اختیاری، خوانایی) → validate-sheba → bank-from-sheba. برای PAN: format → validate-card → card-bank-lookup. جدول مرجع: bank-codes.
برای نویسندگان محتوا و legal
در قرارداد میتوانید شبا formatشده بنویسید به شرط digits صحیح. duplicate بدون IR و با IR هر دو رایج است؛ یک convention در firm انتخاب کنید.
محدودیت عمدی ابزار
format ارقام فارسی را به لاتین تبدیل میکند در digitsOnly path ولی IR فارسی نمیسازد. خط تیره unicode various strip میشود. اگر ورودی خالی، null.
جمعبندی
فرمت در FinAI لایهٔ presentation است: کارت ۴×۴، شبا IR spaced. اعتبار Luhn و IBAN را عوض نمیکند؛ داده به سرور نمیرود. برای تصمیم مالی validate و درگاه رسمی؛ format برای چشم و سند.
عمق برای تیم ops
در log سیستم همیشه normalized store کنید؛ format فقط view. وقتی debug mismatch بین portal و ERP، compare digitsOnly نه pretty print.
در فرهنگ سازمانی، جدا کردن «قشنگ کردن» از «درست کردن» از bug reportهای بیپایان جلوگیری میکند — کاربر میگوید format زدم هنوز خطا میدهد؛ پاسخ استاندارد: validate بزنید، احتمالاً typo است نه فاصله.
خوانایی موبایل
در صفحهٔ کوچک، grouped digits خطا را در dictation تلفنی کم میکند: «گروه سوم ۴۵۶۷». format tool برای call center internal مفید است بدون share screen از app بانک.
نسخهٔ چاپی و PDF
بعضی PDF generator فاصله را collapse میکنند؛ قبل از print preview بگیرید. شبای generate-sheba خروجی compact دارد؛ format برای invoice layer.
اگر در FinAI ecosystem گم شدید: validate برای truth، format برای beauty، bank-codes برای context، generate برای ساخت از حساب — هر کدام یک job مشخص بدون overlap خطرناک.
تفاوت format با mask امنیتی
mask در UI پذیرندگی معمولاً ستاره روی رقمهای میانی است تا PAN کامل دیده نشود. format در FinAI برعکس است: همهٔ ارقام را برای خواندن شما نشان میدهد. در محیط open office از format روی کارت واقعی پرهیز کنید؛ از validate برای sanity check بدون نمایش بلندمدت روی صفحه استفاده کنید. برای شبا، mask کمتر رایج است چون واریز به full string نیاز دارد — ولی در آموزش عمومی still شبای کامل public نکنید.
یکپارچهسازی با فرمهای دولتی و سامانههای HR
بسیاری از سامانههای دولتی هنوز فیلد شبا بدون IR و بدون فاصله میخواهند. workflow: در notepad FinAI format کنید، human read کنید، سپس digitsOnly manual paste در سامانه — یا مستقیم validate و copy normalized از خروجی validate اگر UI آن را نشان میدهد. format intermediate step است نه final submit format.
کارت مجازی و PAN طولانیتر
ابزار format روی digitsOnly کار میکند؛ PAN استاندارد شتاب sixteen رقم است. اگر fintech رقم اضافه داد، format ۴×۴ ممکن است آخرین گروه کوتاه یا بلند شود — still فقط نمایش. برای اعتبار، validate-card طول ۱۶ را enforce میکند. شبای IR همیشه twenty-six character display با IR یا twenty-four digit body.
سؤالات عملی بدون الگوی تکراری
آیا format باعث میشود درگاه پرداخت من PAN را بپذیرد؟ فقط اگر درگاه خودش strip کند؛ many درگاهها space را میپذیرند. شبا با IR و بدون IR در format چه میشود؟ خروجی با IR spaced یکدست است. آیا format جای normalize ارقام فارسی است؟ بخشی از pipeline است؛ validate و generate هم normalize میکنند. داده کجا میرود؟ nowhere — client-side.
برای copywriterهای FinAI
در CTA صفحات بانکی همیشه بنویسید format اعتبار را عوض نمیکند تا user expectation درست بماند. cross-link به validate-sheba و validate-card در همان breath. تأکید privacy: نه card data to server.
تمرین dictation تلفنی
وقتی پشتیبانی شبا را از مشتری میگیرد، format local به هر دو طرف کمک میکند «گروه دوم» را همزمان ببینند. بعد از تماس، validate ضبطشده در CRM paste شود — format برای note انسانی، validate برای record رسمی.
چاپ و فونت monospace
در فاکتورهای چاپی گاهی شبا با فونت monospace و فاصلهٔ ثابت میآید تا OCR و چشم خطا کمتر شود. format FinAI همان ایده را در UI مرورگر تکرار میکند. اگر از Word export میگیرید، بعد از format حتماً PDF را zoom کنید — بعضی فونتها فاصله را visually جمع میکنند در حالی که character count درست است.
دوبارهکاری validate بعد از format
تیم QA گاهی میپرسد آیا باید دو بار validate بزنیم — قبل و بعد از format. پاسخ فنی: یک بار کافی است چون digit sequence تغییر نمیکند. اگر دو بار زدید و نتیجه فرق کرد، یعنی بین دو بار دستی رقم عوض شده یا hidden character آمده — format مقصر نیست.
لینکهای مرتبط در اکوسystem FinAI
برای کارت: validate-card، card-bank-lookup، card-to-sheba. برای شبا: validate-sheba، bank-from-sheba، generate-sheba. مرجع کد: bank-codes. همهٔ این مسیرها برای دادهٔ حساس client-side طراحی شدهاند — format لایهٔ نمایش در همان خانواده است.
تفاوت با «تمیز کردن» ورودی در backend
سرورهای بانکی معمولاً قبل از mod 97 همهٔ non-digit را strip میکنند. format FinAI همان strip را در validate انجام میدهد، ولی UI format فقط برای انسان است. اگر integration مینویسید، در backend فقط digitsOnly بفرستید — pretty string را در DB ذخیره نکنید مگر برای display column جدا.
Accessibility و خوانش صفحهخوان
گروهبندی چهار رقمی باعث میشود screen reader شبا را pauseدار بخواند و کاربر نابینا رقم را دوبارهکاری کند. برای form label، hint بگذارید «فاصله اختیاری است». format tool برای sighted users است؛ blind users often prefer continuous digits with validate confirmation.