معرفی

حتما تا به حال با این موضوع مواجه شدید که بخواید برای صفحه ثبت نام کاربر یا ورود کاربر رمز عبورشون رو بررسی کنید و ببینید که اصلا رمز عبور حداقل نیاز ها مثل حروف و عدد همزمان درش به کار رفته یا نه که البته این بررسی هم سمت کلاینت و هم سمت سرور باید انجام بشه تا اعتبار به تایید برسه. برای انجام این کار روش های مختلف هست مثلا بررسی کاراکتر ها و گذاشتن شرط های مختلف یا استفاده از پیکج های آماده یا ارسال به وب سایت هایی که خدمات اعتبار سنجی رو بهتون میدن ولی یکی از ساده ترین روش هایی که من بهتون معرفی میکنم استفاده از کلمات با قاعده است.

REGEX

برای بررسی صحت و اعتبار سنجی رمز عبور باید رشته ورودی که دارید رو با رشته زیر مقایسه کنید و ببینید آیا با هم منطبق هستند یا نه.

^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\$%\^&\*])(?=.{8,})

کد بالا رو می تونید به راحتی در هر زبان برنامه نویسی استفاده کنید.

(?=.*[a-z])

این بخش برای تشخیص حروف کوچک در عبارت اصلی است.

(?=.*[A-Z])

برای تشخصی حروف بزرگ هم به این شکل مشخص میکنیم.

(?=.*[0-9])

بخش سوم تشخیص اعداد در عبارت است.

(?=.*[!@#\$%\^&\*])

تشخیص کاراکتر های خاص.

(?=.{8,})

با این کد آخر هم می تونیم حداقل کاراکتر های ورودی رو مشخص کنیم.

نکته 1: می تونیم رشته تشخیص حداقل کاراکتر ها رو از Regex حذف کنیم.

نکته 2: می تونیم رشته های اعتبار سنجی دیگری هم به کد اضافه کنیم.

مثال

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

Example regex

من چند نمونه از زبان هایی رو که این کد رو میتونید داخلش قرار بدید و بررسی کنید براتون میزارم

PHP

<?php 
$regex = &quot/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\$%\^&\*])(?=.{8,})/"
$string = &quotTest123456@"

if(preg_match($regex, $string, $match)) 
{
  echo &quotWe found a match to the expression: &quot . $match[0];
} 
else 
{
  echo &quotWe found no match."
}

JS

let password = 'Test123456@';
let regex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\$%\^&\*])(?=.{8,})/;
let found = password.match(regex);

console.log(found);

Python

import re

password = &quotTest123456@&quot
x = re.search(&quot^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\$%\^&\*])(?=.{8,})&quot, password)

if x:
  print(&quotYES! We have a match!&quot)
else:
  print(&quotNo match&quot)

دیدگاه شما

نشانی ایمیل شما منتشر نخواهد شد.