یادگیری نحوه نوشتن Regular Expression ها کار دشواری است و خیلی از برنامه نویس ها (از جمله خود من) ترجیه می دهند تا از عبارات آماده موجود استفاده کنند. در این مطلب قصد دارم تا تعدادی از Regular Expression های باقاعده پرکاربرد را خدمت دوستان معرفی کنیم. این عبارات در زمینه های مختلف مانند Validation یا جستجو در کدها یا متن ها قابل استفاده است.
1. چک کردن سطح امنیت کلمه عبور (Password Strength)
با کمک عبارت زیر می توانید سطح امنیت کلمه عبور را چک کنید، برای مثال زمانی که یک کلمه عبور را از کاربر دریافت می کنید می توانید بررسی کنید که آیا این کلمه عبور مبتنی بر قواعدی که شما مشخص کردید هست یا خیر. مواردی که در این عبارت چک می شوند:
- حداقل طول کلمه عبور 8 کاراکتر
- استفاده از کاراکترهای حروف بزرگ
- استفاده از کاراکترهای حروف کوچک
- استفاده از اعداد
^(?=.*[A-Z].*[A-Z])(?=.*[!@#$&*])(?=.*[0-9].*[0-9])(?=.*[a-z].*[a-z].*[a-z]).{8}$
2. یافتن کدهای رنگ Hexadecimal
بوسیله عبارت زیر، می توانید کلیه کدهای رنگ Hexadecimal رو در یک متن (مخصوصاً فایل های CSS) پیدا کنید. این عبارت بیشتر به کار طراحان و برنامه نویسان وب می خورد:
\#([a-fA-F]|[0-9]){3, 6}
3. اعتبار سنجی فرمت پست الکترونیکی
به طور حتم، شما نیز زمان ثبت نام کاربران، یکی از اطلاعاتی که از کاربران درخواست می کنید، آدرس پست الکترونیکی کاربر می باشد. اما این آدرس باید با فرمت صحیح وارد شود، بوسیله عبارت زیر می توانید صحت فرمت آدرس وارد شده را بررسی کنید:
/[A-Z0-9._%+-]+@[A-Z0-9-]+.+.[A-Z]{2,4}/igm
4. اعتبارسنجی فرمت آدرس IPv4
بوسیله عبارت زیر، فرمت آدرس IPv4 ورودی را می توانید بررسی کنید:
/\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/
5. اعتبارسنجی فرمت آدرس IPv6
نسخه 6 برای IP چندی قبل معرفی شده و بوسیله عبارت زیر می توانید اعتبار سنجی بر روی مقادیر ورودی IPv6 را انجام دهید:
(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))
6. جداسازی اعداد
بوسیله عبارت زیر، می توانید اعداد ورودی را به صورت سه رقم جداسازی کنید:
/\d{1,3}(?=(\d{3})+(?!\d))/g
7. استخراج آدرس دامنه از یک URL
بوسیله عبارت زیر، می توانید نسبت به استخراج آدرس دامنه از یک URL کامل اقدام کنید، این مورد بیشتر در کدهای JavaScript یا PHP به کمک شما می آید:
/https?:\/\/(?:[-\w]+\.)?([-\w]+)\.\w+(?:\.\w+)?\/?.*/i
8. اعتبار سنجی URL
بوسیله عبارت زیر، فرمت URL را به عنوان ورودی می توانید بررسی کنید:
/^(((http|https|ftp):\/\/)?([[a-zA-Z0-9]\-\.])+(\.)([[a-zA-Z0-9]]){2,4}([[a-zA-Z0-9]\/+=%&_\.~?\-]*))*$/
یا زمانی که اطلاعات فرم را میخوای ارسال کنی این بررسی را انجام بدید و یا اینکه با هر چنج تکست باکس مربوطه ولیدیت را انجام بدید ...
سلام.من میخوام در یک textbox قیمت رو وارد کنم و میخوام ازین عبارتی که گفتی استفاده کنم
\d{1,3}(?=(\d{3})+(?!\d))g
در چه رویدادی و به چه صورتی باید استفاده کنم از این؟