grandfather
3 سال پیش توسط grandfather مطرح شد
4 پاسخ

ارور در تایپ فارسی اعداد در فرم ها داخل موبایل

با سلام
داخل فرم ها اگر کاربر زبان تایپ رو بزاره رو فارسی موقع ثبت اطلاعات عددی مثل شماره موبایل ارور میده به این صورت که انگار چیزی وارد نشده و اگه هم شده مقدار وارد شده رو صحیح نمیدونه :/
این مشکل وقتی سایت توسط کامپیوتر لود میشه نیست و فقط در موبایل و ... به وجود میاد
کسی میدونه علت و راهکار برطرف کردنش چیه؟


ثبت پرسش جدید
محمد عابدی
تخصص : Senior Web Developer
@abedim910 3 سال پیش مطرح شد
0

@hossein0065 یک میدلویر درست کنید به اسم normalizeNumbers و هروقت رکوئست mobile یا password یا هر چیزی که میاز دارید وجود داشت اعداد فارسی و عربی رو به لاتین تبدیل کنید.
اگر متوجه نشدید بگید بیشتر توضیح بدم


grandfather
تخصص : پدربزرگ ...
@hossein0065 3 سال پیش آپدیت شد
0

@abedim910 متاسفانه متوجه نشدم :/
داخل میدلور باید دقیقا چی بنویسم
نمونه ای دارید ؟


محمد عابدی
تخصص : Senior Web Developer
@abedim910 3 سال پیش مطرح شد
0

@hossein0065


namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\TransformsRequest;
class NormalizeNumbersMiddleware extends TransformsRequest
{
    protected $attributes = [
        'mobile',
        'password',
    ];
    protected function transform($key, $value)
    {
        if (in_array($key, $this->attributes)) {
            $value = normalize_number($value);
        }
        switch ($key) {
            case 'mobile':
                $mobile = str_replace(' ', '', trim($value));
                $value = '0' . substr($mobile, -10);
                $mobilePat = '/^09[0-9]{9}$/';
                if(!preg_match($mobilePat, $value)){
                    return 'invalid';
                }
                break;
        }
        return $value;
    }
}

اینم متدی که تو helper باید استفاده کنید.


function normalize_number($string)
{
    $persian = array('۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹');
    $arabic = array('٠', '١', '٢', '٣', '٤', '٥', '٦', '٧', '٨', '٩', 'ك', 'ي');
    $standard = range(0, 9);
    array_push($standard, 'ک', 'ی');
    return str_replace($persian, $standard, str_replace($arabic, $standard, $string));
}

grandfather
تخصص : پدربزرگ ...
@hossein0065 3 سال پیش مطرح شد
0

@abedim910 متد helper رو تو تمام صفحات فراخونی کنم؟


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام