^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$
sẽ như thế nào nếu mình bỏ dấu ^ vs $ trong regex đi ? mục đích và chức năng của ^ và $ trong regex ngoài việc mở đầu và kết thúc lệnh thì còn gì khác không ạ
Mục đích và chức năng của ^ và $ trong regex
Ở multiline mode thì nó trở thành bắt đầu và kết thúc dòng.
Nếu mình nhớ không nhầm thì ^$ dùng để so sánh khớp toàn bộ chuỗi
Sẽ như thế nào nếu mình bỏ dấu ^ và $ trong regex
Nếu cậu bỏ đi, cậu sẽ nhận sai 1 số dạng email thôi 
Giờ tớ gọi tạm 2 pattern regex như thế này:
- Pattern R(ight):
^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$ - Pattern W(rong):
[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}
Thử validate 1 vài email nhé!
- [email protected]: cả 2 pattern đều validate email này hợp lệ.
- [email protected]: Validate fail với pattern R, và validate success với pattern W (dĩ nhiên, đây không phải email hợp lệ)
mục đích và chức năng của
^và$trong regex ngoài việc mở đầu và kết thúc lệnh thì còn gì khác không ạ
$ thì có mỗi 2 ý nghĩa:
- $: kết thúc dòng
- \$: ký tự dollar
^ có 3 ý nghĩa:
- ^ (ở đầu dòng): mở đầu dòng
- \^: ký tự ^
- ^ (trong khối []): not (không chứa ký tự trong khối [])
Để đảm bảo nhận dạng ^ và $ thành kí tự thì phải thoát kí tự đó. Chỉ một số ít ngôn ngữ tự hiểu thành kí tự trong 1 ngữ cảnh nhất định. Một số ngôn ngữ không thoát thì sẽ bị ngoại lệ. Tốt nhất là thoát cho chắc.
\^\$
Có nhiều kí tự nằm trong dạng đặc biệt, thực hiện chức năng nhất định. Muốn nhận dạng thành 1 kí tự thì phải thoát bằng kí tự \.
Ồ, cảm ơn cậu nhé!
Tớ thực ra cũng có để dấu backslash ở ví dụ, nhưng trên web có vẻ đã xóa luôn dấu \ đó luôn 
Klq, như regex không chấp nhận kí tự thường (a-z) thì phải 
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?