حتما تا به حال با این موضوع مواجه شدید که بخواید برای صفحه ثبت نام کاربر یا ورود کاربر رمز عبورشون رو بررسی کنید و ببینید که اصلا رمز عبور حداقل نیاز ها مثل حروف و عدد همزمان درش به کار رفته یا نه که البته این بررسی هم سمت کلاینت و هم سمت سرور باید انجام بشه تا اعتبار به تایید برسه. برای انجام این کار روش های مختلف هست مثلا بررسی کاراکتر ها و گذاشتن شرط های مختلف یا استفاده از پیکج های آماده یا ارسال به وب سایت هایی که خدمات اعتبار سنجی رو بهتون میدن ولی یکی از ساده ترین روش هایی که من بهتون معرفی میکنم استفاده از کلمات با قاعده است.
برای بررسی صحت و اعتبار سنجی رمز عبور باید رشته ورودی که دارید رو با رشته زیر مقایسه کنید و ببینید آیا با هم منطبق هستند یا نه.
^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\$%\^&\*])(?=.{8,})
کد بالا رو می تونید به راحتی در هر زبان برنامه نویسی استفاده کنید.
(?=.*[a-z])
این بخش برای تشخیص حروف کوچک در عبارت اصلی است.
(?=.*[A-Z])
برای تشخصی حروف بزرگ هم به این شکل مشخص میکنیم.
(?=.*[0-9])
بخش سوم تشخیص اعداد در عبارت است.
(?=.*[!@#\$%\^&\*])
تشخیص کاراکتر های خاص.
(?=.{8,})
با این کد آخر هم می تونیم حداقل کاراکتر های ورودی رو مشخص کنیم.
نکته 1: می تونیم رشته تشخیص حداقل کاراکتر ها رو از Regex حذف کنیم.
نکته 2: می تونیم رشته های اعتبار سنجی دیگری هم به کد اضافه کنیم.
برای مشاهده نمونه خروجی و بررسی عبارت می تونید از لینک زیر استفاده کنید.
من چند نمونه از زبان هایی رو که این کد رو میتونید داخلش قرار بدید و بررسی کنید براتون میزارم
<?php $regex = "/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\$%\^&\*])(?=.{8,})/" $string = "Test123456@" if(preg_match($regex, $string, $match)) { echo "We found a match to the expression: " . $match[0]; } else { echo "We found no match." }
let password = 'Test123456@'; let regex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\$%\^&\*])(?=.{8,})/; let found = password.match(regex); console.log(found);
import re password = "Test123456@" x = re.search("^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\$%\^&\*])(?=.{8,})", password) if x: print("YES! We have a match!") else: print("No match")
برای دیدن مقالات بیشتر می تونید به وبلاگ شخصی من مراجعه کنید