عبارات معمولی نیاز به عادت کردن دارند، بنابراین برای بررسی جزئیات کاربر با این مثال ها شروع کنید.
عبارات منظم یک ابزار برنامه نویسی یکپارچه هستند که می توانید از آن برای بسیاری از کارهای روزمره و کاربردی استفاده کنید. می توانید از عبارات منظم برای جستجو، مطابقت یا تجزیه متن استفاده کنید. با الگوهای مناسب، می توانید برخی از رایج ترین جزئیات حساب کاربری را تأیید کنید.
می توانید از عبارات منظم با زبان ها یا ابزارهای زیادی از جمله پایتون و جاوا اسکریپت استفاده کنید.
Regex برای اعتبارسنجی یک نام کاربری
نام کاربری را در نظر بگیرید که فقط در صورتی معتبر باشد که شرایط زیر را داشته باشد:
- تعداد کاراکترها باید بین 5 تا 15 باشد. (شما ممکن است محدوده متفاوتی را با توجه به نیاز خود تعیین کنید، اما بر این اساس در regex تغییراتی ایجاد کنید.)
- رشته فقط باید دارای کاراکترهای الفبایی عددی و/یا زیرخط (_) باشد.
- اولین کاراکتر رشته باید حروف الفبا باشد.
کد مورد استفاده در این پروژه در a موجود است
مخزن GitHub
و استفاده از آن تحت مجوز MIT برای شما رایگان است.
Regex زیر شرایط فوق را برآورده می کند و می تواند یک نام کاربری را تأیید کند:
^[A-Za-z]\\w{4,14}$
اگر با عبارت فوق راحت نیستید، ابتدا یک راهنمای مبتدی برای عبارات منظم را بررسی کنید. این یک رویکرد پایتون برای اعتبارسنجی نام کاربری است:
import re
def checkUsername(username):
regex = "^[A-Za-z]\\w{4,14}$"
r = re.compile(regex)
if (re.search(r, username)):
print("Valid")
else:
print("Not Valid")
username1 = "yuvraj_chandra"
checkUsername(username1)
username2 = "ja7&^%87"
checkUsername(username2)
اجرای این کد تأیید می کند که نام کاربری اول معتبر است اما نام کاربری دوم معتبر نیست:
به طور مشابه، می توانید نام کاربری را در جاوا اسکریپت با استفاده از کد زیر تأیید کنید:
function checkUsername(user) {
if(/^[A-Za-z][A-Za-z0-9_]{4,14}$/.test(user)) {
console.log('Valid');
} else {
console.log('Not Valid');
}
}
checkUsername('yuvraj_chandra');
checkUsername('ja7&^%87');
شما می توانید از این کد برای اعتبارسنجی فرم های HTML با استفاده از عبارات منظم استفاده کنید.
Regex برای اعتبارسنجی یک آدرس ایمیل
Regex برای تأیید اعتبار یک آدرس ایمیل کامل نیست. هیچ regex مورد توافق جهانی برای تأیید یک آدرس ایمیل وجود ندارد. این کاملاً به تعریف شما از معتبر خلاصه می شود.
در زیر لیستی از شرایطی وجود دارد که می تواند اکثر آدرس های ایمیل را تأیید کند:
- نام کاربری فقط باید دارای حروف عددی، زیرخط، خط تیره و/یا نقطه باشد.
- رشته شناسه ایمیل باید یک کاراکتر @ داشته باشد.
- نام دامنه فقط باید دارای حروف الفبای عددی، زیرخط یا خط تیره باشد.
- بعد از نام دامنه باید یک نقطه وجود داشته باشد.
- پسوند دامنه فقط باید شامل نویسههای حروف عددی، زیرخط یا خط تیره باشد.
- طول پسوند دامنه باید بین 2 تا 4 باشد.
Regex زیر شرایط فوق را برآورده می کند و می تواند یک آدرس ایمیل را تأیید کند:
^[\w.-]+@([\w-]+\.)+[\w-]{2,4}$
این یک رویکرد پایتون برای اعتبارسنجی آدرس ایمیل است:
import re
def checkEmailId(email):
regex = "^[\w.-]+@([\w-]+\.)+[\w-]{2,4}$"
r = re.compile(regex)
if (re.search(r, email)):
print("Valid")
else:
print("Not Valid")
email1 = "abc@gmail.com"
checkEmailId(email1)
email2 = "abc@def@gmail.kahscg"
checkEmailId(email2)
مجدداً، خروجی تأیید می کند که آدرس ایمیل اول معتبر است در حالی که دومی نامعتبر است:
با استفاده از کد زیر می توانید یک ایمیل را در جاوا اسکریپت تأیید کنید:
function checkEmailId(email) {
if (/^[\w.-]+@([\w-]+\.)+[\w-]{2,4}$/.test(email)) {
console.log('Valid');
} else {
console.log('Not Valid');
}
}
checkEmailId("abc@gmail.com");
checkEmailId("abc@def@gmail.kahscg");
قدرت رمز عبور را با استفاده از عبارات منظم بررسی کنید
رمزهای عبور قوی از منظر امنیتی ضروری هستند. شما باید مطمئن شوید که کاربران نهایی گذرواژههای کافی قوی دارند تا دیگران نتوانند به حسابهایشان دسترسی داشته باشند.
قوانین زیر مطمئن می شوند که قدرت رمز عبور برنامه شما قوی است:
- حداقل تعداد کاراکترها باید 8 عدد باشد.
- رشته باید حداقل یک رقم داشته باشد.
- رشته باید حداقل یک کاراکتر بزرگ داشته باشد.
- رشته باید حداقل یک کاراکتر کوچک داشته باشد.
- رشته باید حداقل یک کاراکتر خاص داشته باشد.
Regex زیر شرایط فوق را برآورده می کند و می تواند به اطمینان از رمز عبور قوی تر کمک کند:
(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[^A-Za-z0-9])(?=.{8,})
با استفاده از کد زیر می توانید قدرت رمز عبور را در پایتون بررسی کنید:
import re
def checkPasswordStrength(password):
regex = "(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[^A-Za-z0-9])(?=.{8,})"
r = re.compile(regex)
if (re.search(r, password)):
print("Strong Password")
else:
print("Weak Password")
password1 = "Hiuahd$5jawd"
checkPasswordStrength(password1)
password2 = "my_password"
checkPasswordStrength(password2)
اجرای این کد تایید می کند که رمز اول قوی است در حالی که رمز دوم ضعیف است:
با استفاده از کد زیر می توانید قدرت رمز عبور را در جاوا اسکریپت بررسی کنید:
function checkPasswordStrength(password) {
if (/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[^A-Za-z0-9])(?=.{8,})/.test(password)) {
console.log('Strong Password');
} else {
console.log('Weak Password');
}
}
checkPasswordStrength('Hiuahd$5jawd');
checkPasswordStrength('my_password');
عبارت منظم برای مطابقت با یک تاریخ معتبر
اگر می خواهید به سرعت بررسی کنید که آیا تاریخ های داده شده در قالب تاریخ سنتی هستند یا نه، می توانید این کار را با استفاده از regex انجام دهید.
عبارت منظم زیر با یک تاریخ در قالب mm/dd/yyyy مطابقت دارد:
^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d$
Regex برای تاریخ دارای محدودیت هایی است، تاریخ هایی مانند 31 فوریه را تأیید نمی کند. فقط تأیید می کند که آیا رشته داده شده شبیه تاریخ است یا نه.
کد پایتون زیر تاریخ را در قالب mm/dd/yyyy تأیید میکند:
import re
def checkDateFormat(date):
regex = "^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d$"
r = re.compile(regex)
if(re.search(r, date)):
print("Valid")
else:
print("Not Valid")
date1 = "03/21/2002"
checkDateFormat(date1)
date2 = "15/21/2002"
checkDateFormat(date2)
یک بار دیگر، خروجی تأیید می کند که قالب تاریخ اول معتبر است، اما دومی نامعتبر است:
می توانید تاریخ را در قالب mm/dd/yyyy در جاوا اسکریپت با استفاده از کد زیر تأیید کنید:
function checkDateFormat(date) {
if(/^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d$/.test(date)) {
console.log('Valid');
} else {
console.log('Not Valid');
}
}
checkDateFormat('03/21/2002');
checkDateFormat('15/21/2002');
اعتبار سنجی رشته خالی با استفاده از عبارات منظم
با استفاده از عبارت منظم زیر می توانید بررسی کنید که آیا یک رشته خالی است:
^$
در زیر رویکرد پایتون برای اعتبار سنجی رشته خالی آورده شده است:
import re
def checkEmptyString(str):
regex = "^$"
r = re.compile(regex)
if (re.search(r, str)):
print("The given string is empty")
else:
print("The given string is not empty")
str1 = ""
checkEmptyString(str1)
str2 = "This is not an empty string"
checkEmptyString(str2)
خروجی زیر نشان می دهد که رشته اول خالی است در حالی که رشته دوم خالی است:
از کد جاوا اسکریپت زیر برای بررسی خالی بودن یا نبودن رشته استفاده کنید:
function checkEmptyString(str) {
if (/^$/.test(str)) {
console.log('The given string is empty');
} else {
console.log('The given string is not empty');
}
}
checkEmptyString('');
checkEmptyString('This is not an empty string');
RegEx برای اعتبارسنجی کد پستی (کد پستی ایالات متحده)
میتوانید یک کد پستی (کد پستی ایالات متحده) را در دو قالب پنج رقمی و نه رقمی (به نام ZIP+4) با استفاده از عبارت منظم زیر تأیید کنید:
^[0-9]{5}(?:-[0-9]{4})?$
در زیر کد پایتون برای اعتبار سنجی کدهای پستی آمده است:
import re
def validateZIPCode(code):
regex = "^[0-9]{5}(?:-[0-9]{4})?$"
r = re.compile(regex)
if (re.search(r, code)):
print("Valid")
else:
print("Not Valid")
code1 = "76309"
validateZIPCode(code1)
code2 = "83468-2348"
validateZIPCode(code2)
code3 = "234445"
validateZIPCode(code3)
اجرای این کد تأیید می کند که کد پستی اول و دوم معتبر هستند اما سومی معتبر نیست:
از کد جاوا اسکریپت زیر برای تأیید اعتبار کد ZIP با استفاده از regex استفاده کنید:
function validateZIPCode(code) {
if (/^[0-9]{5}(?:-[0-9]{4})?$/.test(code)) {
console.log('Valid');
} else {
console.log('Not Valid');
}
}
validateZIPCode('76309');
validateZIPCode('83468-2348');
validateZIPCode('234445');
ورودی کاربر را با کد قوی تأیید کنید
شما یاد گرفتید که چگونه جزئیات حساب کاربری را با استفاده از عبارات منظم تأیید کنید. اعتبارسنجی این جزئیات کد را قوی می کند و به رفع مشکلات امنیتی و اشکالات ناخواسته کمک می کند. کد قوی تجربه ای امن و مطمئن را برای کاربران شما فراهم می کند.
باید مطمئن شوید که داده های ورودی را در سمت مشتری یا سمت سرور تأیید می کنید تا همیشه در مقابل هکرها در امان باشید.