Tên người dùng regex html

Trong hướng dẫn này, bạn sẽ thấy cách sử dụng biểu thức chính quy để xác thực. Thông qua danh sách các ví dụ, chúng tôi sẽ xây dựng tập lệnh để xác thực số điện thoại, mã bưu điện của Vương quốc Anh cùng với nhiều ví dụ khác

Trước tiên, hãy bắt đầu bằng cách xây dựng trang web và mã xác thực, sau đó chúng ta sẽ nói về các biểu thức chính quy được sử dụng để xác thực các chuỗi. Trước tiên, hãy truy cập tệp html của bạn và dán đoạn mã sau

<form action="" onsubmit="validate()">
  <input type="text"id="phone-number" placeholder="phone number"/> <br>
  <input type="text" id="postal-code" placeholder="postal code" /><br>
  <input type="submit" />
form>

Ở đây, tôi có một hình thức đơn giản. Nó có một sự kiện onsubmit được đính kèm với một chức năng có tên là xác thực () mà chúng ta sẽ tạo sau bên trong biểu mẫu này, có ba đầu vào, một đầu vào cho số điện thoại của chúng ta, một đầu vào khác dành cho mã bưu điện và đầu vào thứ ba và đầu vào cuối cùng là nút gửi.

Bây giờ, hãy chuyển sang mã javascript sẽ chứa tất cả các phần biểu thức chính quy

function validate()
{
  var phoneNumber = document.getElementById('phone-number').value;
  var phoneRGEX = /^[(]{0,1}[0-9]{3}[)]{0,1}[-\s\.]{0,1}[0-9]{3}[-\s\.]{0,1}[0-9]{4}$/;
  var phoneResult = phoneRGEX.test(phoneNumber);
  alert("phone:"+phoneResult );
}

Đây là chức năng xác nhận () của chúng tôi bây giờ. Nó chỉ chứa mã xác thực số điện thoại. Trong dòng đầu tiên, tôi đang sử dụng tài liệu. getElementById() để lấy số điện thoại từ phần tử đầu vào. Sau đó, tôi đã tạo biểu thức chính quy của mình và gắn nó vào một biến có tên là phoneRGEX lưu ý rằng tôi không cần đặt biểu thức chính quy trong dấu ngoặc kép, điều này là do javascript tự nhiên nhận ra các biểu thức chính quy nên không cần phải tạo chúng dưới dạng chuỗi rồi chuyển đổi chúng

Sau đó, tôi đã tạo một biến chứa kết quả của việc chạy hàm test() trên chuỗi phoneNumber, đây sẽ là một giá trị boolean chứa true nếu chuỗi khớp với biểu thức chính quy của chúng ta hoặc false nếu không.

Bây giờ, hãy chuyển sang phần thú vị đang thảo luận về biểu thức chính quy

/^[(]{0,1}[0-9]{3}[)]{0,1}[-\s\.]{0,1}[0-9]{3}[-\s\.]{0,1}[0-9]{4}$/

Đầu tiên chúng ta có dấu gạch chéo bắt đầu và kết thúc “/”, sau đó biểu thức bắt đầu bằng dấu “^” để khớp với phần đầu của chuỗi. Chú ý phần [-\s\.] này khớp với dấu cách ____5 dấu gạch nối hoặc dấu chấm (.).[0-9]{3} có nghĩa là 3 chữ số. Vì vậy, về cơ bản, biểu thức cố khớp với một số điện thoại như thế này (541) 754-3010 hoặc như thế này 541-754-3010 hoặc có dấu cách

Bây giờ hãy chuyển sang phần Mã bưu chính

function validate(){
  var phoneNumber = document.getElementById('phone-number').value;
  var postalCode = document.getElementById('postal-code').value;
  var phoneRGEX = /^[(]{0,1}[0-9]{3}[)]{0,1}[-\s\.]{0,1}[0-9]{3}[-\s\.]{0,1}[0-9]{4}$/;
  var postalRGEX = /^[A-Z]{1,2}[0-9]{1,2} ?[0-9][A-Z]{2}$/i;
  var phoneResult = phoneRGEX.test(phoneNumber);
  var postalResult = postalRGEX.test(postalCode);
  alert("phone:"+phoneResult + ", postal code: "+postalResult);
}

Ở đây tôi đã thêm một biến mới có tên là mã bưu chính để lấy mã bưu chính từ biểu mẫu, sau đó tạo một biến khác để lưu trữ biểu thức chính quy của mã bưu chính mà chúng ta sẽ thảo luận trong giây lát. Sau đó, tôi đã sử dụng chức năng kiểm tra để kiểm tra chuỗi của mình dựa trên biểu thức chính quy và in kết quả dưới dạng cảnh báo

Bây giờ hãy chuyển sang biểu thức chính quy

Ví dụ về mã bưu chính Vương quốc Anh. EC1A 1BB W1A 0AX M1 1AE B33 8TH CR2 6XH DN55 1PT Vì vậy, 1 hoặc 2 ký tự chữ cái, theo sau là 1 hoặc 2 chữ số, sau đó là khoảng trắng và một chữ số và chính xác hai ký tự chữ cái. Vì vậy, đây là mẫu biểu thức chính quy

/^[A-Z]{1,2}[0-9]{1,2} ?[0-9][A-Z]{2}$/i

Chữ i ở cuối mẫu biểu thị rằng đây là kết quả khớp không phân biệt chữ hoa chữ thường

Đây là mã demo

Xem Biểu thức chính quy của bút trong Xác thực

Bây giờ chúng ta đã hiểu đúng các mẫu, chúng ta có thể tiếp tục và thêm mã này vào chức năng xác thực của biểu mẫu

Làm cách nào để xác thực tên người dùng trong HTML?

hàm xác thực() { tên var = tài liệu. getElementById("tên người dùng"). .
^ - từ đầu chuỗi (hoặc dòng có cờ m)
[ - bắt đầu lớp ký tự
a-z - dãy ký tự từ a đến z
\d - giống như 0-9 (bất kỳ chữ số nào)
] - đóng lớp nhân vật
+ một hoặc nhiều
$ - cuối chuỗi (hoặc dòng có cờ m)

\\ s+ nghĩa là gì trong regex?

Dấu cộng + là một bộ định lượng tham lam, có nghĩa là một hoặc nhiều lần. Ví dụ: biểu thức X+ khớp với một hoặc nhiều ký tự X. Do đó, biểu thức chính quy \s khớp với một ký tự khoảng trắng, trong khi \s+ sẽ khớp với một hoặc nhiều ký tự khoảng trắng .

'$' nghĩa là gì trong regex?

$ có nghĩa là " Khớp với phần cuối của chuỗi " (vị trí sau ký tự cuối cùng trong chuỗi). Cả hai đều được gọi là neo và đảm bảo rằng toàn bộ chuỗi được khớp thay vì chỉ một chuỗi con.

Regex 0 * 1 * 0 * 1 * có nghĩa là gì?

Về cơ bản (0+1)* toán học bất kỳ dãy số nào và số nào . Vì vậy, trong ví dụ của bạn (0+1)*1(0+1)* phải khớp với bất kỳ chuỗi nào có 1. Nó sẽ không khớp với 000 , nhưng nó sẽ khớp với 010 , 1 , 111 , v.v. (0+1) nghĩa là 0 HOẶC 1. 1* có nghĩa là bất kỳ số nào.