ارقام فارسی در ورودی؛ نمایش و مقدار را جدا کنید
کاربر ممکن است با ارقام فارسی تایپ کند، اما منطق اعتبارسنجی به لاتین نیاز دارد. مرز این دو را واضح کنید.
مهندسی
اگر ورودی موبایل فقط ارقام لاتین را بپذیرد، تجربهٔ طبیعی کاربر فارسی قطع میشود. از سوی دیگر، ذخیرهٔ مستقیم ارقام فارسی در API معمولاً دردسر میسازد.
الگوی پیشنهادی
در لایهٔ نمایش، ارقام را فارسی نشان دهید؛ در لایهٔ منطقی، قبل از اعتبارسنجی و ارسال، به لاتین نرمال کنید.
function toLatinDigits(value: string) {
return value.replace(/[۰-۹]/g, (d) =>
String("۰۱۲۳۴۵۶۷۸۹".indexOf(d))
)
}برای فیلدهای غیرعددی مثل ایمیل، تبدیل ارقام را اعمال نکنید. دامنهٔ تبدیل را صریح نگه دارید.