معرفی
چه متوجه شوید یا نه، داده ها به بخش مهمی از زندگی روزمره ما تبدیل شده اند. از سفارش آنلاین غذا گرفته تا جستجوی غذای گربه، ما دائما در حال ارسال و دریافت اطلاعات هستیم. به عنوان توسعه دهندگان برنامه های کاربردی وب، مسئولیت ما این است که اطمینان حاصل کنیم که ورودی های کاربر در قالب مشخص شده است تا پایگاه داده داده ها را به درستی درک کند و برنامه قوی بماند.
اعتبارسنجی شماره تلفن مهم است زیرا تضمین می کند که داده ها در یک قالب ثابت در سراسر پایگاه داده ذخیره می شوند. برای مثال، کاربران ممکن است نیاز به توضیح داشته باشند که آیا باید کد کشور را قبل از شماره تلفن خود وارد کنند یا خیر. با وجود اعتبار سنجی مناسب، کاربران به راحتی می توانند تشخیص دهند که آیا آن مورد نیاز است یا خیر. به طور مشابه، تجربه کاربر با یک قالب ثابت بهبود مییابد، زیرا میدانید از کاربران چه انتظاری دارید و میتوانید منطق را بر این اساس پیادهسازی کنید. اگر کد در مرحله بعد به دلیل داده های ناسازگار شکسته شود، تجربه ضعیفی برای کاربران خواهد بود.
عبارات منظم ابزار قدرتمندی برای تطبیق الگو هستند. آنها انعطاف پذیری را برای مطابقت با الگوهای انواع مختلف، بسته به مورد استفاده شما، فراهم می کنند. بعلاوه، عبارات منظم زبانی آگنوستیک هستند، و منطق اعتبارسنجی شما را قابل حمل تر می کند، زیرا می توانید به راحتی اعتبار سنجی اصلی را ادغام کنید. کار با regex در جاوا اسکریپت یک کار ساده است.
این مقاله به شما کمک میکند تا بفهمید چگونه از قدرت عبارات منظم برای اعتبارسنجی شماره تلفن برنامهتان استفاده کنید. شما یک تابع جاوا اسکریپت ساده می نویسید تا شماره تلفن ها را با کدهای کشور تأیید کنید.
یک عبارت منظم چیست؟
به زبان ساده، یک عبارت منظم با یک الگوی از پیش تعریف شده در یک رشته مشخص مطابقت دارد. این به طور گسترده در زبان های برنامه نویسی استفاده می شود و در درجه اول برای اعتبارسنجی ورودی های یک فرمت خاص استفاده می شود. علاوه بر این، عبارات منظم معمولاً برای جستجو، تقسیم و جایگزینی الگوهای مشخص شده استفاده میشوند.
فرض کنید می خواهید یک آدرس ایمیل در یک سند پیدا کنید. آدرس ایمیل می تواند هر آدرسی باشد، نه یک آدرس خاص. نوشتن یک عبارت ساده به شما کمک می کند تا الگو را به سرعت پیدا کنید زیرا از قبل ساختار آدرس ایمیل را می دانید.
یک عبارت منظم از کاراکترهای ویژه برای نشان دادن انواع مختلف الگوها استفاده می کند. مثلا:
.
(نقطه) کاراکتر خاصی است که می تواند با هر کاراکتری مطابقت داشته باشد.*
(ستاره) 0 بار یا بیشتر با کاراکتر قبلی مطابقت دارد.+
(به علاوه) یک یا چند بار با کاراکتر قبلی مطابقت دارد.?
(علامت سوال) کاراکتر قبلی را اختیاری می کند.[abc]
با هر یک از شخصیت ها مطابقت داردa
,b
، یاc
.(abc)
شخصیت ها را با هم گروه بندی می کند^
(caret) با شروع خط مطابقت دارد.$
(دلار) با انتهای خط مطابقت دارد.
اینها فقط تعدادی هستند. اگر می خواهید عمیق تر غواصی کنید و با الگوهای بیشتری آشنا شوید، می توانید به آن مراجعه کنید این سند از مایکروسافت.
بیایید یک عبارت منظم بسازیم که بررسی کند آیا مجموعه ای از اعداد یک کد پستی پنج رقمی هستند یا خیر. برای شروع نوشتن عبارت، از عبارت استفاده می کنیم ^
علامت (caret) همانطور که با شروع خط مطابقت دارد. در یک عبارت منظم، d
با هر رقم و عددی در داخل پرانتزهای فرفری مطابقت دارد ({}
) با عنصر قبلی دقیقاً به تعداد دفعاتی که در داخل مهاربندها داده شده است مطابقت دارد. از لیست بالا، ما این را می دانیم $
برای تطبیق انتهای خط استفاده می شود.
با ترکیب این اطلاعات، یک عبارت منظم مانند زیر بدست می آوریم:
/^d{5}$/
حال بیایید گرافیک زیر را برای درک بهتر بیان بررسی کنیم.
عبارت منظم برای مطابقت با کد پستی پنج رقمی
اکنون که درک اولیه ای از عبارات منظم و ساختار کلی آنها داریم، زمان خوبی است تا بررسی کنیم که چگونه این عبارات می توانند در یک تابع جاوا اسکریپت پیاده سازی شوند.
عبارات منظم جاوا اسکریپت
جاوا اسکریپت است محبوب ترین زبان برنامه نویسی در میان توسعه دهندگان از آنجایی که تقریباً همه برنامههای کاربردی وب به جاوا اسکریپت نیاز دارند، درک چگونگی استفاده از عبارات منظم در این زبان بسیار مهم است.
در جاوا اسکریپت، RegExp
شی برای تطبیق الگو استفاده می شود. این شی به دو صورت قابل استفاده است:
- با استفاده از نماد تحت اللفظی، که در آن یک الگو بین دو اسلش رو به جلو قالب بندی می شود
- با استفاده از نماد سازنده، که در آن یک رشته یا a
RegExp
شی منتقل می شود
نماد لفظی را می توان به سادگی به این صورت استفاده کرد:
const expr = /^d{5}$/i;
از سوی دیگر، با نماد سازنده، باید از آن استفاده کنید RegExp
سازنده برای ایجاد یک نمونه از آن. در اینجا چگونه به نظر می رسد:
const expr = new RegExp(/^d{5}$/, "i");
شما می توانید اطلاعات بیشتری در مورد شی RegExp از قسمت بخوانید اسناد رسمی MDN. اکنون، بیایید اهمیت اعتبارسنجی شماره تلفن و اجزای مختلف یک شماره تلفن را بررسی کنیم.
اعتبارسنجی شماره تلفن و اجزای سازنده
اعتبارسنجی شماره تلفن در سمت مشتری هنگام ذخیره شماره تلفن در پایگاه داده شما بسیار مهم است. بدون اعتبار سنجی مناسب، کد شما ممکن است رفتارهای غیرمنتظره ای از خود نشان دهد.
راهنمای عملی و عملی ما برای یادگیری Git را با بهترین روش ها، استانداردهای پذیرفته شده در صنعت و برگه تقلب شامل بررسی کنید. دستورات Google Git را متوقف کنید و در واقع یاد گرفتن آی تی!
به عنوان مثال، فرض کنید از سرویسی استفاده می کنید که به کد کشور همراه با شماره تلفن نیاز دارد، اما کاربران شما به دلیل عدم تأیید اعتبار، آنها را درج نمی کنند. در حال حاضر، شما فقط شماره را دارید بدون کد کشور و سرویسی که پیام های متنی اس ام اس می فرستد ممکن است به این دلیل از کار بیفتد. این فقط یک سناریوی فرضی است. مشکلات دیگر حتی می توانند برنامه شما را خراب کنند. بسیار مهم است که داده های خود را به درستی مدیریت کنید تا اطمینان حاصل شود که داده های تمیز و ثابت را در پایگاه داده خود ذخیره می کنید.
به طور کلی یک شماره تلفن از چهار بخش تشکیل شده است:
- کد کشور: 1 تا 3 رقم اول (بسته به کشور) کشور شماره تلفن را مشخص می کند. این کد اجازه می دهد تا تماس به کشور صحیح هدایت شود. کد کشور نمی تواند با 0 شروع شود.
مقاله ای که در حال ویرایش آن هستید با عنوان «تأیید شماره تلفن در جاوا اسکریپت با عبارات منظم» است. تکه متن برای ویرایش:
- کد منطقه: همچنین به نام شهر یا کد شماره گیری نیز شناخته می شود، این قسمت از شماره به مسیریابی تماس به منطقه جغرافیایی صحیح در داخل کشور کمک می کند. در برخی کشورها، مانند ایالات متحده، کدهای منطقه همچنین می توانند مجموعه خاصی از شماره تلفن ها را برای یک سرویس خاص نشان دهند. علاوه بر این، در آمریکای شمالی، کد منطقه نمی تواند با 0 یا 1 شروع شود.
- پیشوند تلفن: این دنباله از اعداد توسط شرکت تلفن به یک دفتر مرکزی یا مرکز تلفن خاص اختصاص داده می شود و منطقه یا محله جغرافیایی خاص را محدودتر می کند.
- شماره خط: این شماره منحصربهفردی است که به خط تلفن خاص برای یک خانواده یا کسبوکار در منطقه پیشوند اختصاص داده میشود. این قسمت از شماره معمولاً تضمین می کند که هر شماره تلفن در یک کشور، منطقه و پیشوند منحصر به فرد است.
بدون احتساب کد کشور، ترکیب قسمت های باقیمانده منجر به یک شماره تلفن ده رقمی می شود که کد منطقه و پیش شماره تلفن هر کدام سه رقمی و شماره خط چهار رقمی است.
اکنون به نوشتن یک تابع جاوا اسکریپت می پردازیم که یک شماره تلفن را بر اساس این معیارها با استفاده از عبارات معمولی تأیید می کند.
یک RegEx برای اعتبارسنجی شماره تلفن ایجاد کنید
ما قبلا ساختار اصلی شماره تلفن را درک کرده ایم. ما همچنین در مورد عبارات منظم و نحوه استفاده از آنها در جاوا اسکریپت یاد گرفتیم. در این بخش، یک تابع جاوا اسکریپت ساده می نویسیم که شماره تلفن های فرمت داده شده را تأیید می کند:
COUNTRY_CODE-AREA_CODE-TELEPHONE_PREFIX-LINE_NUMBER
به عنوان مثال، یک شماره تلفن معتبر برای عملکرد ما به این صورت خواهد بود +123-456-789-1234
، اما نه +012-123-456-7890
or +12-123-456-789
، از آنجایی که این شماره تلفن ها از قوانین شماره تلفن هایی که قبلاً در مورد آن صحبت کردیم پیروی نمی کنند.
حالا بیایید به نوشتن عبارت منظم بپردازیم. ابتدا بیایید بررسی کنیم که آیا کد کشور 1 تا 3 رقمی است و با صفر شروع نمی شود.
برای نشان دادن شروع عبارت با قاعده، از علامت علامت (^
)، سپس تأیید کنید که یک پلاس در ابتدا وجود دارد. برای این منظور استفاده کنیم +
، که مطابق با وجود مثبت در ابتدا خواهد بود. حال، برای اطمینان از اینکه ارقام کد کشور بین یک تا سه رقم است و رقم اول صفر نیست، میتوانیم چیزی شبیه به این بنویسیم: [1-9]{1}[0-9]{0,2}
. اینجا، [1-9]{1}
مشخص می کند که هر رقمی از 1 تا 9 می تواند دقیقاً یک بار وجود داشته باشد و به همین ترتیب، [0-9]{0,2}
نشان می دهد که هر رقمی از 0 تا 9 می تواند صفر تا دو برابر باشد.
برای جداکننده می توانیم a اضافه کنیم -
(فاصله) بین بخش های عدد. یکی -
را می توان پس از تأیید اعتبار کد کشور اضافه کرد. بنابراین، در این مرحله، regex به شکل زیر است:
^+[1-9]{1}[0-9]{0,2}-$
La $
در انتها انتهای خط را مشخص می کند. اکنون، برای کد منطقه، این کاملا مشابه خواهد بود. کد منطقه نمی تواند با صفر یا یک شروع شود. بنابراین، بخش اول خواهد بود [2-9]{1}
. این مطابقت دارد که عدد اول بین 2 و 9 باشد. این تطابق یک بار اتفاق می افتد. سپس برای بقیه کدها می توانیم بنویسیم [0-9]{2}
. این اطمینان حاصل می کند که دقیقاً دو رقم بعد از اولین رقم وجود دارد و برای هر رقم، محدوده بین 0 تا 9 است. باز هم جداکننده خط فاصله را در انتها اضافه کنید.
اکنون، regexp کامل به شکل زیر خواهد بود:
^+[1-9]{1}[0-9]{0,2}-[2-9]{1}[0-9]{2}-$
|----Country Code---|-|---Area Code--|-|
بیایید دوباره از همان الگو برای بررسی پیشوند تلفن استفاده کنیم. بیایید فرض کنیم که پیش شماره تلفن نیز نمی تواند با صفر یا یک شروع شود. بنابراین، اضافه کردن [2-9]{1}[0-9]{2}
و یک خط فاصله دوباره عبارت را به این صورت در می آورد:
^+[1-9]{1}[0-9]{0,2}-[2-9]{1}[0-9]{2}-[2-9]{1}[0-9]{2}-$
|----Country Code---|-|---Area Code--|-|--Tel Prefix--|-|
تنها قسمتی که اکنون باقی مانده است شماره خط است که می تواند هر رقمی با طول دقیقاً چهار باشد. این ساده تر از بقیه است. بیان این است [0-9]{4}
.
بیان کامل به صورت زیر است:
^+[1-9]{1}[0-9]{0,2}-[2-9]{1}[0-9]{2}-[2-9]{1}[0-9]{2}-[0-9]{4}$
|----Country Code---|-|---Area Code--|-|--Tel Prefix--|-|-Line-|
حتما متوجه استفاده مکرر از بریس های فرفری شده اید. آنها برای مطابقت با نمونه های ارائه شده در داخل بریس استفاده می شوند. اگر رقم خاصی است، لایک کنید {1}
، دقیقاً یک بار با الگوی قبلی مطابقت دارد. با این حال، اگر یک محدوده است، مانند {0, 2}
، حداقل و حداکثر تعداد منطبق را تعریف می کند. بنابراین، در مورد {0, 2}
، حداقل صفر بار و حداکثر دو بار با الگو مطابقت دارد.
الگو آماده است. اکنون میتوانیم یک تابع ساده جاوا اسکریپت بنویسیم تا بررسی کنیم که آیا یک شماره تلفن با استفاده از عبارت معمولی معتبر است یا خیر. در اینجا تابع است:
function validatePhoneNumber(phoneNumber) { const pattern = new RegExp("^+[1-9]{1}[0-9]{0,2}-[2-9]{1}[0-9]{2}-[2-9]{1}[0-9]{2}-[0-9]{4}$"); if (pattern.test(phoneNumber)) { console.log("Phone number is valid"); return true; } else { console.log("Phone number is not valid"); return false; }
} validatePhoneNumber("+123-456-789-1234"); validatePhoneNumber("+0-123-456-7890"); validatePhoneNumber("+12-012-123-1234");
عملکرد کاملاً ساده است. شماره تلفن را به عنوان ورودی می گیرد. الگوی عبارت منظم در یک متغیر به نام ذخیره می شود pattern
. الگو با استفاده از سازنده RegExp و ارسال عبارت به عنوان پارامتر به سازنده نمونه سازی می شود. سپس، شماره تلفن را با استفاده از test
روش موجود در شی با استفاده از عبارت if-else، بررسی می کنیم که آیا شماره تلفن از آزمون عبور کرده است یا خیر. اگر اینطور شد، ما true را برمیگردانیم و یک پیام کنسول ارسال میکنیم که نشان میدهد Phone number is valid
. در غیر این صورت، false را برمی گرداند و یک پیام کنسول نشان می دهد که شماره تلفن معتبر نیست.
با این، ما خوب هستیم. اکنون، میتوانید شماره تلفنهای خود را تست کنید تا ببینید آیا معتبر هستند یا خیر.
خلاصه
هدف این مقاله ارائه یک نمای کلی از عبارات منظم، کاربرد آنها و نحوه استفاده از آنها برای اعتبارسنجی شماره تلفن بود. ما همچنین در مورد اجزای مختلف یک شماره تلفن و نحوه آزمایش هر جزء بحث کردیم.
با درک اولیه از عبارات منظم، اکنون می توانید الگوهای اضافی را کشف کنید. همچنین می توانید از ابزارهایی مانند Regex101 برای اعتبارسنجی عبارات خود به صورت آنلاین
- محتوای مبتنی بر SEO و توزیع روابط عمومی. امروز تقویت شوید.
- EVM Finance. رابط یکپارچه برای امور مالی غیرمتمرکز دسترسی به اینجا.
- گروه رسانه ای کوانتومی. IR/PR تقویت شده دسترسی به اینجا.
- PlatoAiStream. Web3 Data Intelligence دانش تقویت شده دسترسی به اینجا.
- منبع: https://stackabuse.com/validate-phone-numbers-in-javascript-with-regular-expressions/
- : دارد
- :است
- :نه
- :جایی که
- 1
- 12
- 20
- 8
- 9
- a
- الفبا
- درباره ما
- بالاتر
- بر این اساس
- در میان
- واقعا
- اضافه کردن
- اضافه
- اضافه کردن
- اضافی
- علاوه بر این
- نشانی
- پس از
- از نو
- هدف
- معرفی
- اجازه می دهد تا
- در امتداد
- قبلا
- همچنین
- امریکا
- در میان
- an
- و
- هر
- کاربرد
- برنامه های کاربردی
- اعمال می شود
- هستند
- محدوده
- مقاله
- AS
- اختصاص داده
- At
- در دسترس
- مستقر
- اساسی
- BE
- زیرا
- شدن
- قبل از
- شروع
- در زیر
- بهتر
- میان
- مرز
- می شکند
- ساختن
- کسب و کار
- اما
- by
- صدا
- نام
- CAN
- نمی توان
- مورد
- CAT
- مرکزی
- شخصیت
- کاراکتر
- بررسی
- بررسی
- چک
- شهر:
- مشتری
- رمز
- کد
- ترکیب
- عموما
- شرکت
- کامل
- جزء
- اجزاء
- استوار
- تشکیل شده است
- کنسول
- به طور مداوم
- ساخت و ساز
- هسته
- اصلاح
- میتوانست
- کشور
- کشور
- سقوط
- ایجاد
- ضوابط
- بسیار سخت
- در حال حاضر
- داده ها
- پایگاه داده
- روز به روز
- عمیق تر
- تعریف می کند
- بستگی دارد
- مشخص کردن
- توسعه دهندگان
- مختلف
- رقم
- بحث کردیم
- صفحه نمایش
- do
- سند
- میکند
- ندارد
- دلار
- DOT
- پایین
- دو
- هر
- پیش از آن
- به آسانی
- هر دو
- عنصر
- پست الکترونیک
- به کار گرفته شده
- پایان
- اطمینان حاصل شود
- تضمین می کند
- حصول اطمینان از
- حتی
- کاملا
- معاینه کردن
- مثال
- تبادل
- نمایش دادن
- وجود داشته باشد
- وجود دارد
- انتظار
- تجربه
- اکتشاف
- بیان
- اصطلاحات
- FAIL
- غلط
- کمی از
- پیدا کردن
- نام خانوادگی
- انعطاف پذیری
- تمرکز
- به دنبال
- به دنبال آن است
- غذا
- برای
- قالب
- به جلو
- چهار
- مکرر
- از جانب
- ظاهر
- تابع
- بیشتر
- بعلاوه
- سوالات عمومی
- جغرافیایی
- دریافت کنید
- رفتن
- داده
- Go
- خوب
- گرافیک
- گروه ها
- راهنمایی
- دست
- دسته
- دست
- آیا
- کمک
- کمک می کند
- اینجا کلیک نمایید
- خانواده
- در تردید بودن
- چگونه
- چگونه
- اما
- HTTPS
- i
- if
- انجام
- اجرا
- اهمیت
- مهم
- in
- مشمول
- از جمله
- نشان دادن
- نشان می دهد
- اطلاعات
- ورودی
- ورودی
- نمونه
- ادغام
- به
- معرفی
- مسائل
- IT
- جاوا اسکریپت
- پرش
- تنها
- فقط یکی
- دانستن
- شناخته شده
- عدم
- زبان
- زبان ها
- بعد
- یاد گرفتن
- آموخته
- یادگیری
- طول
- اجازه
- LG
- پسندیدن
- لاین
- فهرست
- زندگی
- ll
- منطق
- طولانی
- نگاه کنيد
- شبیه
- مطالب
- ساخت
- باعث می شود
- ساخت
- علامت
- مسابقه
- مطابق
- بیشترین
- ام دی ان
- پیام
- پیام
- روش
- مایکروسافت
- قدرت
- حد اقل
- بیش
- حرکت
- موزیلا
- باید
- نیاز
- شمال
- شمال امریکا
- اکنون
- عدد
- تعداد
- هدف
- of
- دفتر
- on
- یک بار
- ONE
- آنهایی که
- آنلاین
- فقط
- or
- دیگر
- در غیر این صورت
- ما
- خارج
- مروری
- پارامتر
- بخش
- ویژه
- بخش
- عبور می کند
- عبور
- الگو
- الگوهای
- تلفن
- محل
- افلاطون
- هوش داده افلاطون
- PlatoData
- به علاوه
- نقطه
- فقیر
- محبوب
- قدرت
- قوی
- عملی
- در درجه اول
- برنامه نويسي
- زبانهای برنامه نویسی
- مناسب
- به درستی
- ارائه
- ارائه
- هدف
- سوال
- به سرعت
- محدوده
- RE
- خواندن
- اماده
- تحقق بخشیدن
- دریافت
- regex
- منظم
- باقی مانده
- بقایای
- نیاز
- ضروری
- نیاز
- مسئوليت
- REST
- نتایج
- برگشت
- بازده
- حلقه
- تنومند
- مسیر
- قوانین
- s
- همان
- ذخیره
- صرفه جویی کردن
- گفتن
- سناریو
- جستجو
- بخش
- بخش
- دیدن
- ارسال
- در حال ارسال
- می فرستد
- دنباله
- سرویس
- تنظیم
- سایه
- ورق
- باید
- طرف
- امضاء
- مشابه
- به طور مشابه
- ساده
- به سادگی
- پس از
- SMS
- So
- برخی از
- چیزی
- ویژه
- خاص
- مشخص شده
- صحنه
- استانداردهای
- شروع
- بیانیه
- ایالات
- توقف
- ذخیره شده
- ساده
- رشته
- ساختار
- خلاصه
- طول می کشد
- کار
- قوانین و مقررات
- آزمون
- آزمایش
- نسبت به
- که
- La
- محوطه
- خط
- شان
- آنها
- سپس
- آنجا.
- اینها
- آنها
- این
- سه
- سراسر
- زمان
- بار
- با عنوان
- به
- با هم
- ابزار
- انتقال
- درست
- دو
- انواع
- فهمیدن
- درک
- درک می کند
- فهمید
- غیر منتظره
- منحصر به فرد
- متحد
- ایالات متحده
- استفاده کنید
- مورد استفاده
- استفاده
- کاربر
- سابقه کاربر
- کاربران
- استفاده
- با استفاده از
- معمولا
- استفاده
- تصدیق
- اعتبار سنجی
- مختلف
- می خواهم
- راه
- we
- وب
- برنامه های وب
- چی
- چه زمانی
- چه
- که
- به طور گسترده ای
- اراده
- با
- در داخل
- بدون
- کارگر
- خواهد بود
- نوشتن
- نوشته
- شما
- شما
- زفیرنت
- صفر
- زیپ