خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

نحوه اعتبارسنجی جزئیات حساب کاربری با استفاده از عبارات منظم

عبارات معمولی نیاز به عادت کردن دارند، بنابراین برای بررسی جزئیات کاربر با این مثال ها شروع کنید.

عبارات منظم یک ابزار برنامه نویسی یکپارچه هستند که می توانید از آن برای بسیاری از کارهای روزمره و کاربردی استفاده کنید. می توانید از عبارات منظم برای جستجو، مطابقت یا تجزیه متن استفاده کنید. با الگوهای مناسب، می توانید برخی از رایج ترین جزئیات حساب کاربری را تأیید کنید.

می توانید از عبارات منظم با زبان ها یا ابزارهای زیادی از جمله پایتون و جاوا اسکریپت استفاده کنید.

Regex برای اعتبارسنجی یک نام کاربری

نام کاربری را در نظر بگیرید که فقط در صورتی معتبر باشد که شرایط زیر را داشته باشد:

  1. تعداد کاراکترها باید بین 5 تا 15 باشد. (شما ممکن است محدوده متفاوتی را با توجه به نیاز خود تعیین کنید، اما بر این اساس در regex تغییراتی ایجاد کنید.)
  2. رشته فقط باید دارای کاراکترهای الفبایی عددی و/یا زیرخط (_) باشد.
  3. اولین کاراکتر رشته باید حروف الفبا باشد.

کد مورد استفاده در این پروژه در 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)

اجرای این کد تأیید می کند که نام کاربری اول معتبر است اما نام کاربری دوم معتبر نیست:

خروجی regex نام کاربری

به طور مشابه، می توانید نام کاربری را در جاوا اسکریپت با استفاده از کد زیر تأیید کنید:

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 مورد توافق جهانی برای تأیید یک آدرس ایمیل وجود ندارد. این کاملاً به تعریف شما از معتبر خلاصه می شود.

مطلب مرتبط:   نحوه استفاده از Dev Drive برای توسعه دهندگان در ویندوز 11

در زیر لیستی از شرایطی وجود دارد که می تواند اکثر آدرس های ایمیل را تأیید کند:

  1. نام کاربری فقط باید دارای حروف عددی، زیرخط، خط تیره و/یا نقطه باشد.
  2. رشته شناسه ایمیل باید یک کاراکتر @ داشته باشد.
  3. نام دامنه فقط باید دارای حروف الفبای عددی، زیرخط یا خط تیره باشد.
  4. بعد از نام دامنه باید یک نقطه وجود داشته باشد.
  5. پسوند دامنه فقط باید شامل نویسه‌های حروف عددی، زیرخط یا خط تیره باشد.
  6. طول پسوند دامنه باید بین 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)

مجدداً، خروجی تأیید می کند که آدرس ایمیل اول معتبر است در حالی که دومی نامعتبر است:

خروجی regex شناسه ایمیل

با استفاده از کد زیر می توانید یک ایمیل را در جاوا اسکریپت تأیید کنید:

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");

قدرت رمز عبور را با استفاده از عبارات منظم بررسی کنید

رمزهای عبور قوی از منظر امنیتی ضروری هستند. شما باید مطمئن شوید که کاربران نهایی گذرواژه‌های کافی قوی دارند تا دیگران نتوانند به حساب‌هایشان دسترسی داشته باشند.

قوانین زیر مطمئن می شوند که قدرت رمز عبور برنامه شما قوی است:

  1. حداقل تعداد کاراکترها باید 8 عدد باشد.
  2. رشته باید حداقل یک رقم داشته باشد.
  3. رشته باید حداقل یک کاراکتر بزرگ داشته باشد.
  4. رشته باید حداقل یک کاراکتر کوچک داشته باشد.
  5. رشته باید حداقل یک کاراکتر خاص داشته باشد.

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)

اجرای این کد تایید می کند که رمز اول قوی است در حالی که رمز دوم ضعیف است:

مطلب مرتبط:   نحوه واکشی اطلاعات تماس گیرنده با استفاده از پایتون

خروجی رمز عبور regex

با استفاده از کد زیر می توانید قدرت رمز عبور را در جاوا اسکریپت بررسی کنید:

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)

یک بار دیگر، خروجی تأیید می کند که قالب تاریخ اول معتبر است، اما دومی نامعتبر است:

خروجی regex تاریخ

می توانید تاریخ را در قالب 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)

خروجی زیر نشان می دهد که رشته اول خالی است در حالی که رشته دوم خالی است:

مطلب مرتبط:   نحوه ایجاد پانورامای خیره کننده با پایتون و OpenCV

خروجی regex رشته

از کد جاوا اسکریپت زیر برای بررسی خالی بودن یا نبودن رشته استفاده کنید:

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)

اجرای این کد تأیید می کند که کد پستی اول و دوم معتبر هستند اما سومی معتبر نیست:

خروجی regex کد پستی

از کد جاوا اسکریپت زیر برای تأیید اعتبار کد 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');

ورودی کاربر را با کد قوی تأیید کنید

شما یاد گرفتید که چگونه جزئیات حساب کاربری را با استفاده از عبارات منظم تأیید کنید. اعتبارسنجی این جزئیات کد را قوی می کند و به رفع مشکلات امنیتی و اشکالات ناخواسته کمک می کند. کد قوی تجربه ای امن و مطمئن را برای کاربران شما فراهم می کند.

باید مطمئن شوید که داده های ورودی را در سمت مشتری یا سمت سرور تأیید می کنید تا همیشه در مقابل هکرها در امان باشید.