سلام - وقتتون بخیر
آقا برای ثبت نام میخام به کاربر بگم ایمیل یا تلفن همراهش رو توی یک فیلد وارد کنه
حالا سمت سرور چطور اینو تشخیص بدم که کدوم وارد شده و براساس نوعش عملکرد مربوطه رو انجام بدم ؟
اگه میشه لطفا دیزاین پترنی اگه برای js هم وجود داره بهم بگین
if (/^(0|\+98)[9](0|1|2|3|9)[0-9]{8,8}$/g.test(myValue)) {
//mobile
} else if (/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(myValue)) {
//email
} else {
//not valid
}
یکی از راه هاش اینه که با RegEx چک کنید اگر مقدار وارد شده صرفا تشکیل شده از مقادیر عددی بود به احتمال زیاد موبایل و در غیر اینصورت ایمیل هست.
let isnum = /^\d+$/.test(val);
اگر خواستید دقت کار رو بیشتر کنید میتونید علاوه بر شرط فوق، تعداد کاراکترهای موبایل رو هم چک کنید که ۱۱ تا باشه و یا اینکه با استفاده از فانکشن زیر معتبر بودن آدرس ایمیل رو چک کنید:
function validateEmail(email) {
const re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(String(email).toLowerCase());
}
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟