راکت

تابع تشخیص مقدار متغییر که آیا ایمیله یا شماره تلفن در لاراول

3 پاسخ

سلام من یک input دارم ک کاربر یا ایمیل یا شماره تلفنش رو برای رجیستر توش مینویسه . و دوتا ولیدیتور دارم که یکی برای زمانیه که ایمیل نوشته باشه یکی هم برای زمانیه که شماره تلفن نوشته باشه.
حالا قبل از فرستادن مقدار به ولیدیتور ها باید بتونم اول بفهمم مقدار کاربر ایمیله یا شماره تلفنه. کسی میتونه کمکم کنه ؟

@hosseinshirinegad98
@milad
@hesammousavi
@ali.bayat
@wozniak
@mhyeganeh
@endworld

ثبت پرسش جدید

پاسخ‌ها

3
woz
woz
@wozniak

تخصص: fan of open source world

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

ایمیل ها همه یه @ دارند.. شما همین رو مبنا قرار بده

اگر ورودی کاربر درش @ بود.. پس ایمیله و از اعتبارسنجی ایمیل باید استفاده کنی.
در غیر این صورت شماره تلفن هست

if (strpos($input,'@') !== false) {
//  email
}
else {
//  phone number
}

شاید پاسخ شما همین‌جا باشد

محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

در نمونه کد زیر اول بررسی می‌کنیم که آیا مقدار مورد نظر از نوع عددی هست یا نه. اگر بله پس مقدار وارد شده موبایل هست. و اگر نه چک میکنیم که آیا از الگوی یک ایمیل معتبر پیروی می‌کنه یا نه... اگر هیچ یک از دو مورد هم صدق نکرد میشه یا ارور داد یا مثلا username در نظر گرفت.

if (is_numeric($request->input('login')) {
   //i e: It's mobile number!
} elseif (filter_var($request->input('login'), FILTER_VALIDATE_EMAIL)) {
   // i e: It's an email address!
}else{
    //None of email or mobile! probably username!
}

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

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