12/08/2018, 16:30

Các kí tự đặc biệt trong Regular Expressions (phần 2)

Các ký hiệu còn lại trong biểu thức chính quy: Kí tự Ý nghĩa Khớp 'x' hoặc 'y' Ví dụ, khớp với 'x' trong chuỗi "target x" và 'y' trong chuỗi "target y". {n, m} Kí tự đứng trước phải xuất hiện từ n đến m lần. n và m là số nguyên dương và n <= m. Nếu m bị bỏ qua, nó ...

Các ký hiệu còn lại trong biểu thức chính quy:

Kí tự Ý nghĩa
Khớp 'x' hoặc 'y'
Ví dụ, khớp với 'x' trong chuỗi "target x" và 'y' trong chuỗi "target y".
{n, m} Kí tự đứng trước phải xuất hiện từ n đến m lần. n và m là số nguyên dương và n <= m. Nếu m bị bỏ qua, nó tương đương như ∞.
Ví dụ, /a{1,3}/ không khớp bất kì kí tự nào trong "cndy"; khớp kí tự 'a' trong "candy"; khớp 2 kí tự 'a' đầu tiên trong "caandy"; và khớp với các bộ 'aaa', 'aaa', 'a' trong "caaaaaaandy".
[xyz] Lớp kí tự. Loại mẫu này dùng để so khớp với một kí tự bất kì trong dấu ngoặc vuông, bao gồm cả escape sequences. Trong lớp kí tự, dấu chấm (.) và dấu hoa thị () không còn là kí tự đặc biệt nên ta không cần kí tự thoát đứng trước nó. Bạn có thể chỉ định một khoảng kí tự bằng cách sử dụng một kí tự gạch nối (-)
Ví dụ: Mẫu [a-d] so khớp tương tự như mẫu [abcd], khớp với 'a', 'c', 'd' trong "candy" và 'c' trong "city". Mẫu /[a-z.]+/ và /[w.]+/ khớp với toàn chuỗi "cand.yyyy".
[^xyz] Lớp kí tự phủ định. Khi kí tự ^ đứng đầu tiên trong dấu ngoặc vuông, nó phủ định mẫu này. mẫu sẽ khớp với các ký tự không thuộc vào khoảng trên
[] Khớp với kí tự dịch lùi - backspace (U+0008). Bạn phải đặt trong dấu ngoặc vuông nếu muốn so khớp một kí tự dịch lùi.
 Khớp với kí tự biên. Kí tự biên là một kí tự giả, nó khớp với vị trí mà một kí tự không được theo sau hoặc đứng trước bởi một kí tự khác. Lưu ý rằng một kí tự biên được khớp sẽ không bao gồm trong kết quả so khớp. Nói cách khác, độ dài của một kí tự biên là 0. (Đừng nhầm lẫn với mẫu []).
Ví dụ:
/c/ khớp với 'c' trong chuỗi "candy"
/nd/ không khớp 'nd' trong chuỗi "candy", bởi vì 'oo' được theo sau bởi kí tự 'y'
B Khớp với kí tự không phải kí tự biên. Mẫu này khớp tại vị trí mà kí tự trước và kí tự sau nó cùng kiểu: hoặc cả hai là kí tự hoặc cả hai không phải là kí tự. Bắt đầu và kết thúc chuỗi không được xem là những kí tự.
Ví dụ, /nB./ khớp với 'dy" trong "candy"
d Khớp với một kí tự số. Tương đương với mẫu [0-9].
Ví dụ: /d/ hoặc /[0-9]/ khớp với '2' trong chuỗi "candy2 is candy."
D Khớp với một kí tự không phải là kí tự số. Tương đương với mẫu [^0-9].
f Khớp với kí tự phân trang - form feed (U+000C).
Khớp với kí tự xuống dòng - line feed (U+000A).
Khớp với kí tự quay đầu dòng - carriage return (U+000D).
s Khớp với một kí tự khoảng trắng, bao gồm trống - space, tab, phân trang - form feed, phân dòng - line feed. Tương đương với [ f v​u00a0u1680​u180eu2000​u2001u2002​u2003u2004​u2005u2006​u2007u2008​u2009u200a​u2028u2029​​u202fu205f​u3000].
Ví dụ: /sw*/ khớp với ' bar' trong "foo bar."
S Khớp với một kí tự không phải khoảng trắng. Tương đương với [^ f v​u00a0u1680​u180eu2000​u2001u2002​u2003u2004​u2005u2006​u2007u2008​u2009u200a​u2028u2029​u202fu205f​u3000].
Ví dụ: /Sw*/ khớp với 'foo' trong chuỗi "foo bar."
Khớp với kí tự tab (U+0009).
v Khớp với kí tự vertical tab (U+000B).
w Khớp với tất cả kí tự là chữ, số và gạch dưới. Tương đương với mẫu [A-Za-z0-9_].
W Khớp với tất cả kí tự không phải là chữ. Tương đương với mẫu [^A-Za-z0-9_].

nguồn [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions]

0