Biểu thức chính quy để xác thực dữ liệu trong Google Form
Tổ chức của bạn có một vài vị trí trống và bạn đang có kế hoạch sử dụng Google Biểu mẫu để chuẩn bị bảng câu hỏi phỏng vấn trước cho người xin việc. Bạn đã tạo một biểu mẫu và nó có tất cả các trường tiêu chuẩn để ứng viên có thể điền tên, địa chỉ email, số điện thoại, mã zip và các thông tin khác.
Biểu mẫu đã được chuẩn bị nhưng trước khi bạn đưa nó vào hoạt động, bạn sẽ làm thế nào để đảm bảo rằng các ứng viên đã nhập dữ liệu theo đúng định dạng? Và ngay cả khi định dạng phù hợp, bản thân dữ liệu có hợp lệ không? Bạn có thể thêm CAPTCHA vào biểu mẫu của Google để ngăn chặn chương trình thư rác không? Bạn có thể bao gồm một bộ lọc tục tĩu để chặn mọi người gửi các mục nhập có chứa các từ tục tĩu không?
Khi bạn đang mong đợi hàng chục, thậm chí hàng trăm câu trả lời trong Google Biểu mẫu của mình, bạn nên có một số quy tắc và dữ liệu của người trả lời được khớp với các quy tắc này ngay cả trước khi họ gửi biểu mẫu. Ví dụ: nếu biểu mẫu của bạn yêu cầu năm sinh của một người và tuổi của người nộp đơn phải từ 25 đến 50, họ chỉ được phép nhập một số từ 1970 đến 1996 vào trường năm sinh.
Biểu thức chính quy trong Google Form
Google Biểu mẫu tương đối dễ dàng thêm các quy tắc xác thực ngày nâng cao như vậy vào các trường riêng lẻ thông qua Biểu thức chính quy (hoặc regex hoặc regexp). Hãy coi chúng là các mẫu tìm kiếm và mọi ký tự được nhập vào trường biểu mẫu đều được khớp với mẫu đó – biểu mẫu chỉ có thể được gửi nếu mẫu và thông tin người dùng nhập khớp với nhau.
Hãy hiểu điều này bằng một ví dụ trong thế giới thực.
Giả sử biểu mẫu Google của bạn yêu cầu người dùng nhập năm sinh của họ. Tại thời điểm thiết kế biểu mẫu, hãy mở rộng phần “Xác thực dữ liệu” bên dưới trường biểu mẫu (xem ảnh chụp màn hình ở trên) và chọn Biểu thức chính quy từ menu thả xuống. Tiếp theo, chọn “Đối sánh” trong menu thả xuống khác và nhập regex sau:
^19([78]\d|9[0-6])$
Trường bây giờ sẽ chấp nhận giá trị đầu vào như 1977, 1995 nhưng sẽ từ chối các giá trị khác nằm ngoài phạm vi 1970..1996.

Google Forms RegEx
Regular Expressions for Common Form Fields
Một biểu thức chính quy có thể có vẻ vô nghĩa nhưng chúng không quá khó đọc và khó hiểu nếu bạn có thể biết các quy tắc cơ bản của ngôn ngữ. Những gì bạn thấy ở đây là tổng hợp một số biểu thức chính quy hữu ích có thể được sử dụng để xác thực các trường biểu mẫu phổ biến như URL, số điện thoại, mã zip, ngày tháng, v.v.
1. Địa chỉ bưu điện – chỉ cho phép các ký tự chữ và số, dấu cách và một số ký tự khác như dấu phẩy, dấu chấm và ký hiệu băm trong trường nhập biểu mẫu.
[a-zA-Z\d\s\-\,\#\.\+]+
2. ZIP Code – regex cho phép mã ZIP ở các định dạng tiêu chuẩn và nó khớp với cả mã zip của Hoa Kỳ và Ấn Độ.
^\d{5,6}(?:[-\s]\d{4})?$
3. Ngày – chấp nhận đầu vào ngày tháng ở định dạng dd/mm/yyyy hoặc dd-mm-yyyy.
((0[1-9])|(1[0-9])|(2[0-9])|(3[0-1]))[\/-]((0[1-9])|(1[0-2]))[\/-](\d{4})
4. Email Address – regex bên dưới phải khớp với hầu hết các định dạng địa chỉ email phổ biến, bao gồm cả bí danh Gmail chấp nhận dấu “+” nhưng không có giải pháp hoàn hảo.
[a-zA-Z0-9_\.\+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-\.]+
5. URL (Web domain) – điều này hữu ích cho các trường yêu cầu người dùng nhập địa chỉ trang web của họ và nó thậm chí còn khớp với các TLD sắp tới như .directory hoặc .restaurant. Regex khác khớp với URL YouTube, bao gồm cả những URL sử dụng miền youtu.be.
https?\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,}
https?\:\/\/(www\.)?youtu(\.)?be(\.com)?\/.*(\?v=|\/v\/)?[a-zA-Z0-9_\-]+
6. Giới hạn ký tự – hộp văn bản mặc định trong biểu mẫu của Google cho phép người dùng nhập bất kỳ số ký tự nào nhưng bạn có thể áp đặt giới hạn với sự trợ giúp của biểu thức chính quy. Ở đây chúng tôi giới hạn đầu vào là 140 ký tự giống như Twitter.
[\w]{1,140}
7. Số điện thoại – đây thường là một dãy số đứng trước dấu “+” tùy chọn và mã vùng có thể nằm trong dấu ngoặc.
\+?\(?\d{2,4}\)?[\d\s-]{3,}
8. Giá (với số thập phân) – nếu trường biểu mẫu yêu cầu người dùng nhập giá của một mặt hàng bằng đơn vị tiền tệ của riêng họ, thì regex này sẽ hữu ích. Thay thế ký hiệu $ bằng ký hiệu tiền tệ của riêng bạn.
\$?\d{1,3}(,?\d{3})*(\.\d{1,2})?
9. Mật khẩu phức tạp – chỉ chấp nhận một chuỗi có 1 bảng chữ cái viết hoa, 1 bảng chữ cái viết thường, 2 chữ số và 1 ký tự đặc biệt. Ngoài ra độ dài tối thiểu cho phép là 8 ký tự.
(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9].*[0-9])(?=.*[^a-zA-Z0-9]).{8,}
10. CAPTCHA – Biểu mẫu của Google không cung cấp CAPTCHA nhưng bạn có thể tạo một CAPTCHA bằng regex. Đây là một hình ảnh xác thực đơn giản yêu cầu người dùng trả lời một câu hỏi đơn giản – 2 + 2 là gì?
^(4|[Ff][Oo][Uu][Rr])$
11. Giới hạn từ – Nếu bạn muốn giới hạn số lượng từ mà người dùng có thể nhập vào trường đầu vào của Biểu mẫu Google, thì cũng có một regex cho điều đó. Trong trường hợp này, chúng tôi chỉ cho phép bất kỳ đầu vào nào có từ 10 đến 15 từ:
^[-\w]+(?:\W+[-\w]+){9,14}\W*$
Nguồn: labnol.org