^[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