ارزیابی شماره موبایل با عبارتهای با قاعده(Regex)
در این نوشته به طور کامل روش اعتبارسنجی شمارههای وارد شده توسط کاربر را برای شباهت به شماره موبایلهای ایرانی بررسی میکنیم. به دلیل اینکه پیش شماره موبایلها به طور دائم در حال افزایش است، از محدود کردن پیششمارهها به شمارههایی که در حال حاضر وجود دارند، خودداری کردیم و تنها بررسی میکنیم که شماره موبایل یک عدد ۱۰ یا ۱۱ رقمی باشد که با ۰۹ یا ۹ شروع بشود. همچنین فرمت بینالمللی با کد کشور را هم در ادامه تحت پوشش خواهیم آورد.
۱- بررسی شماره موبایل بدون کد کشور
سادهترین Regex برای شماره موبایل بدون کد کشور به شکل زیر است:
1 |
^0?9\d{10}$ |
همان طور که در تصویر بالا میبینید، بررسی میکنیم که ورودی ممکن است با صفر شروع شود و در ادامه ۹ و بعد ۹ عدد دیگر بیایند.
۲- بررسی با پشتیبانی از کد کشور ایران
کد کشور ایران ۹۸ است که ممکن است با علامت + پیشوند شده باشد:
1 |
^(\+?98|0)9\d{10}$ |
کد بالا حالتهای بیشتری را پشتیبانی میکند. شمارههایی با فرمتهای زیر قبول میشود:
- شمارههای موبایلی که با +989 شروع شوند.
- شمارههایی که با 989 شروع شوند.
- شمارههایی که با 09 شروع شوند.
- شمارههایی که با 9 شروع شوند.
پشتیبانی از شمارههای فارسی
کدهای بالا فقط شمارههایی با اعداد انگلیسی را پشتیبانی میکنند. بهتر است در تمام وضعیتها، ورودی شماره موبایل کاربر را ابتدا به حروف انگلیسی تبدیل کنید و سپس بررسی کنید که آیا فرمت آن صحیح است و در صورت درست بودن، شماره را به انگلیسی در پایگاه داده ذخیره کنید تا تمام شمارهها فرمت یکسان و استاندارد داشته باشند.
بررسی شماره موبایل با استفاده از جاوااسکریپت
با کمک نمونه کد زیر میتوانید بررسی کنید که عبارت دریافتی از کاربر فرمت صحیح دارد یا نه. در بخش عبارت با قاعده هر یک از گزینههای بالا را میتوانید استفاده کنید:
1 2 3 4 5 6 7 8 |
let phoneNumber = '09123456789'; let pattern = /^(\+?98|0)9\d{10}$/; if( pattern.test( phoneNumber ) ) { console.log( 'شماره موبایل صحیح است.' ); } else { console.log( 'شماره موبایل نادرست است.' ); } |
بررسی شماره موبایل با استفاده از پی اچ پی
کدهای زیر هم برای استفاده در زبان php قابل استفاده هستند:
1 2 3 4 5 6 7 8 9 |
$phoneNumber = '09123456789'; $pattern = '/^(\+?98|0)9\d{10}$/'; if( preg_match( $pattern, $phoneNumber ) ) { echo 'شماره موبایل صحیح است.'; } else { echo 'شماره موبایل نادرست است.'; } |
بررسی شماره موبایل با پایتون
1 2 3 4 5 6 7 8 9 |
import re phone_number = "09123456789" pattern = r'^(\+?98|0)9\d{10}$' if re.match( pattern, phone_number ): print( "شماره موبایل صحیح است." ) else: print( "شماره موبایل نادرست است." ) |
بررسی واقعی بودن شماره موبایل
کدهای بالا تنها بررسی میکنند که ورودی کاربر به شماره موبایل شباهت داشته باشد، اگر نیاز دارید تا مطمئن شوید که این شماره صحیح است و متعلق به همین کاربر است، باید یک پنل اس ام اس تهیه کنید و کدی یک بار مصرف برای کاربر ارسال کنید تا مطمئن شوید که شماره صحیح است و کاربر به این شماره تلفن دسترسی دارد.