Ngày nay, với Google Form bạn có thể thu thập thông tin, đưa ra các thông tin yêu cầu người đăng ký điền vào biểu mẫu. Nhưng đôi khi người dùng lại nhập có thể sai thông tin, vậy làm cách nào để ràng buộc người dùng nhập chính xác thông tin không? Câu trả lời là có! Với Excel, chúng ta có Data Validation, Google Biểu mẫu (Form) có tính năng Xác thực phản hồi (Response Validation)
Vậy Response Validation (Xác thực phản hồi) là gì?
Là những quy định bạn quy ước cho mỗi phần dữ liệu cần nhập vào tuân thủ theo quy tắc đó. Ví dụ, yêu cầu nhập số điện thoại thì phải đủ 10 số, nhập số lượng thì phải lớn hơn 0 và nhỏ hơn số mình quy định, hoặc là viết không quá 100 chữ cho một ô dữ liệu nào đó… Và Xác thực phản hồi (Response Validation) có chia ra 4 phần tương ứng: Numbers (Số), Text (Văn bản), Length (Độ dài), và Regular Expression (Cụm từ thông dụng). Lần lượt chúng ta tìm hiểu 4 cái qua các ví dụ tương ứng:
- Số (Numbers): Bạn có thể quy ước số các phép toán tử tương ứng: Lớn hơn, nhỏ hơn, hoặc bằng, trong khoảng, ngoài khoảng…v.v…
- Văn bản (Text): Chứa, Không chứa, Địa chỉ Email, Địa chỉ URL…
- Độ dài (Length): Số ký tự tối thiểu, số ký tự tối đa.
- Cụm từ thông dụng (Regular Expression): Chứa (Contains), Không chứa (Doesn’t contain), Kết quả phù hợp (Matches), Không khớp (Doesn’t match).
Tìm hiểu về Cụm từ thông dụng (Regular Expression, RegEx)
Các đối tượng chữ
.
bất kỳ ký tự nào trừ xuống dòng
\w\d\s
chữ, số, khoảng trắng
\W\D\S
KHÔNG PHẢI chữ, số, khoảng trắng
[abc]
Chữ có thể là a, b hoặc c
[^abc]
Không phải là: a, b, hoặc c
[a-g]
các chữ giữa a & g
Mỏ neo
^abc$
bắt đầu / kết thúc của chuỗi
\b\B
câu, không phải câu
Khi dùng các ký tự
\.\*\\
khi dùng các ký tự đặc biệt
\t\n\r
tab, linefeed, carriage return
Nhóm
(abc)
Nhóm tìm thấy
\1
tham chiếu tới nhóm 1 #1
(?:abc)
Không tìm thấy nhóm
(?=abc)
Bắt đầu với
(?!abc)
Không bắt đầu với
Số lượng và thay thế
a*a+a?
0 hoặc nhiều, 1 hoặc nhiều, 0 hoặc 1
a{5}a{2,}
chính xác là 5, 2 hoặc nhiều
a{1,3}
giữa 1 và 3
a+?a{2,}?
phù hợp càng ít càng tốt
ab|cd
là ab hoặc cd
Tham khảo thêm tại: https://regexr.com/
Các trường hợp hay dùng:
-
Xác thực địa chỉ email:
Với phần chọn Văn bản (Text), chọn kiểu Email, thì có thể xác thực địa chỉ email. Tuy nhiên, bạn sẽ gặp trường hợp ví dụ như lẫn lộn địa chỉ email, lỗi gõ sai ký tự. Ví dụ thay vì gmail.com, thì các lỗi sai sau: gmial, gmai, gmal, hay là .con, và lại có gmail.com.vn, hay gmail.vn…
Đoạn Regex xác thực:
^[\w-\.]+@(?!.*gmai\.com|mail|gmial|gmaiil|gmeo|gmaill|gnail\.com|gmail\.con|outlook\.com\.vn|mytam\.info|mytamentertainment\.com|yhoo\.com|yaho\.com|yahu\.com|gmail\.com\.vn|gamil\.com|email\.com.*)([\w-]+\.)+[\w-]{2,4}$
-
Xác thực ngày tháng năm sinh:
Google Biểu mẫu (Forms) có phần chọn dạng Date giúp người dùng chọn nhanh ngày, tuy nhiên cũng sẽ có một số bất cập, nên có lựa chọn bắt người dùng nhập theo quy ước “dd/mm/yyyy” của mình, thay vì chọn sẵn.
Đoạn RegEx xác thực ngày tháng năm sinh:
(0[1-9]|[12][0-9]|3[01])[- /.]([0-9]|0[0-9]|1[012])[- /.]\d\d\d\d$
-
Xác thực số Chứng minh nhân dân (9 số), Hộ chiếu hay Căn cước công dân (12 số):
Với lựa chọn Độ dài (Length), bạn có thể ràng buộc về số điện thoại nhập tối thiểu 10 chữ số, người dùng sẽ phải nhập đủ 10 chữ số điện thoại tương ứng. Tuy nhiên, vẫn có trường hợp người dùng nhập thêm ký tự như khoảng trắng, hoặc dấu gạch ngang “-” hoặc dấu chấm “.” thì thế nào?
Đoạn RegEx xác thực Chứng minh nhân dân/Căn cước công dân hoặc Hộ chiếu:
(^\w{3}[0-9]{6}$)|(^\w{1,2}[0-9]{7}$)|(^\d{9}$)|(^\d{12}$)
-
Xác thực Địa chỉ:
Với địa chỉ, người dùng có thể gõ vào địa chỉ ngắn quá, không đầy đủ, chúng ta yêu cầu nhập số lượng ký tự phải tối thiểu là 15 ký tự chẳng hạn, vì địa chỉ luôn cần phải có số nhà, tên phố/đường, phường/xã, quận/huyện, và thành phố/tỉnh…
Các hàm RegexReplace, RegexExtract trong Google Sheets
Bạn có thể dùng RegexExtract để tách điểm thi một cách dễ dàng trong Google Sheets. Hoặc đơn giản là tách chữ ra khỏi chuỗi, hoặc tách số ra khỏi chuỗi một cách dễ dàng.
Ứng dụng Add-in sử dụng các hàm liên quan RegEx: RegexReplace, RegexExtract trong Excel
Các hàm này có sẵn trong Google Sheets, tuy nhiên lại không có sẵn trong Microsoft Excel, bạn muốn dùng, rất đơn giản, hãy tải add-in ExcelRegex này về, và cài vào, sau đó dùng bình thường: https://github.com/Grynn/ExcelRegex.
Tìm hiểu thêm về Regex trong VBA: https://blog.hocexcel.online/cach-su-dung-regular-expression-trong-vba.html