/ / Cách xác thực chi tiết tài khoản người dùng bằng biểu thức chính quy

Cách xác thực chi tiết tài khoản người dùng bằng biểu thức chính quy

Biểu thức chính quy là một công cụ lập trình tích hợp mà bạn có thể sử dụng cho nhiều nhiệm vụ thực tế hàng ngày. Bạn có thể sử dụng biểu thức chính quy để tìm kiếm, đối sánh hoặc phân tích cú pháp văn bản. Với các mẫu phù hợp, bạn có thể xác thực một số chi tiết tài khoản người dùng phổ biến nhất.


Bạn có thể sử dụng biểu thức chính quy với nhiều ngôn ngữ hoặc công cụ, bao gồm Python và JavaScript.


Regex để xác thực tên người dùng

Hãy xem xét một tên người dùng chỉ hợp lệ nếu nó thỏa mãn các điều kiện sau:

  1. Số ký tự phải từ 5 đến 15 (Bạn có thể chỉ định một phạm vi khác tùy theo yêu cầu của mình, nhưng hãy thực hiện các thay đổi trong regex cho phù hợp.)
  2. Chuỗi chỉ nên chứa các ký tự chữ và số và / hoặc dấu gạch dưới (_).
  3. Ký tự đầu tiên của chuỗi phải là chữ cái.

Mã được sử dụng trong dự án này có sẵn trong kho lưu trữ GitHub và miễn phí cho bạn sử dụng theo giấy phép MIT.

Regex sau đây đáp ứng các điều kiện trên và có thể xác thực tên người dùng:

^[A-Za-z]\w{4,14}$

Nếu bạn không hài lòng với biểu thức trên, trước tiên hãy xem hướng dẫn dành cho người mới bắt đầu về biểu thức chính quy. Đây là một cách tiếp cận Python để xác thực tên người dùng:

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)

Chạy mã này sẽ xác nhận rằng tên người dùng đầu tiên là hợp lệ nhưng tên thứ hai thì không:

Tương tự, bạn có thể xác thực tên người dùng trong JavaScript bằng mã sau:

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

Bạn có thể sử dụng mã này để xác thực các biểu mẫu HTML bằng cách sử dụng biểu thức chính quy.

Regex để xác thực địa chỉ email

Regex để xác thực địa chỉ email không hoàn hảo. Không có regex được thỏa thuận chung nào để xác thực một địa chỉ email. Nó hoàn toàn tổng hợp với định nghĩa của bạn về giá trị.

Dưới đây là danh sách các điều kiện có thể xác thực hầu hết các địa chỉ email:

  1. Tên người dùng chỉ được chứa các ký tự chữ và số, gạch dưới, gạch ngang và / hoặc dấu chấm.
  2. Chuỗi id email phải có một ký tự @.
  3. Tên miền chỉ được chứa các ký tự chữ và số, dấu gạch dưới hoặc dấu gạch ngang.
  4. Phải có dấu chấm sau tên miền.
  5. Phần mở rộng tên miền chỉ được chứa các ký tự chữ và số, dấu gạch dưới hoặc dấu gạch ngang.
  6. Độ dài phần mở rộng tên miền phải từ 2 đến 4.

Regex sau đây đáp ứng các điều kiện trên và có thể xác thực địa chỉ email:

^[w.-]+@([w-]+.)+[w-]{2,4}$

Đây là một cách tiếp cận Python để xác thực địa chỉ email:

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)

Một lần nữa, đầu ra xác nhận địa chỉ email đầu tiên hợp lệ trong khi địa chỉ email thứ hai không hợp lệ:

Bạn có thể xác thực email bằng JavaScript bằng mã sau:

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

Kiểm tra độ mạnh của mật khẩu bằng cách sử dụng cụm từ thông dụng

Mật khẩu mạnh là điều cần thiết từ góc độ bảo mật. Bạn cần đảm bảo rằng người dùng cuối có mật khẩu đủ mạnh để người khác không thể truy cập vào tài khoản của họ.

Các quy tắc sau đảm bảo rằng độ mạnh mật khẩu của ứng dụng của bạn là mạnh:

  1. Số ký tự tối thiểu phải là 8.
  2. Chuỗi phải có ít nhất một chữ số.
  3. Chuỗi phải có ít nhất một ký tự viết hoa.
  4. Chuỗi phải có ít nhất một ký tự viết thường.
  5. Chuỗi phải có ít nhất một ký tự đặc biệt.

Regex sau đây đáp ứng các điều kiện trên và có thể giúp đảm bảo mật khẩu mạnh hơn:

(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[^A-Za-z0-9])(?=.{8,})

Bạn có thể kiểm tra độ mạnh của mật khẩu trong Python bằng đoạn mã sau:

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)

Chạy mã này sẽ xác nhận rằng mật khẩu đầu tiên mạnh trong khi mật khẩu thứ hai yếu:

Bạn có thể kiểm tra độ mạnh của mật khẩu trong JavaScript bằng đoạn mã sau:

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

Biểu thức chính quy để khớp với ngày hợp lệ

Nếu bạn muốn nhanh chóng kiểm tra xem các ngày nhất định có ở định dạng ngày truyền thống hay không, bạn có thể thực hiện việc này bằng cách sử dụng regex.

Biểu thức chính quy sau đây khớp với một ngày trong mm / dd / yyyy định dạng:

^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)dd$

Regex cho ngày này có một số hạn chế, nó không xác thực các ngày chẳng hạn như ngày 31 tháng 2. Nó chỉ xác thực xem chuỗi đã cho có giống ngày tháng hay không.

Đoạn mã Python sau xác thực ngày tháng ở mm / dd / yyyy định dạng:

import re

def checkDateFormat(date):
regex = "^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)dd$"
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)

Một lần nữa, kết quả xác nhận định dạng ngày đầu tiên là hợp lệ, nhưng định dạng ngày thứ hai không hợp lệ:

Bạn có thể xác nhận ngày trong mm / dd / yyyy định dạng trong JavaScript bằng cách sử dụng mã sau:

function checkDateFormat(date) {
if(/^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)dd$/.test(date)) {
console.log('Valid');
} else {
console.log('Not Valid');
}
}

checkDateFormat('03/21/2002');
checkDateFormat('15/21/2002');

Xác thực chuỗi trống bằng biểu thức chính quy

Bạn có thể kiểm tra xem một chuỗi có trống không bằng cách sử dụng biểu thức chính quy sau:

^$

Dưới đây là phương pháp Python để xác thực chuỗi trống:

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)

Kết quả sau chứng minh rằng chuỗi đã cho đầu tiên là trống trong khi chuỗi thứ hai thì không:

Sử dụng mã JavaScript sau để kiểm tra xem chuỗi có trống hay không:

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 to Validate ZIP Code (Mã Bưu điện Mỹ)

Bạn có thể xác thực mã ZIP (Mã Bưu điện Mỹ) ở cả định dạng năm chữ số và chín chữ số (được gọi là ZIP + 4) bằng cách sử dụng biểu thức chính quy sau:

^[0-9]{5}(?:-[0-9]{4})?$

Dưới đây là mã Python để xác thực mã ZIP:

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)

Chạy mã này sẽ xác nhận rằng mã ZIP đầu tiên và thứ hai là hợp lệ nhưng mã thứ ba thì không:

Sử dụng mã JavaScript sau để xác thực mã ZIP bằng 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');

Xác minh thông tin đầu vào của người dùng bằng mã mạnh mẽ

Bạn đã học cách xác thực chi tiết tài khoản người dùng bằng cách sử dụng biểu thức chính quy. Việc xác thực các chi tiết này làm cho mã trở nên mạnh mẽ và giúp giải quyết các vấn đề bảo mật và các lỗi không mong muốn. Mã mạnh mẽ cung cấp trải nghiệm an toàn và bảo mật cho người dùng của bạn.

Bạn nên đảm bảo rằng bạn đang xác thực dữ liệu đầu vào ở phía máy khách hoặc phía máy chủ để luôn an toàn trước tin tặc.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *