Chuỗi với biểu thức chính quy trong JavaScript
Biểu thức chính quy có thể được biểu diễn dưới dạng chuỗi. Điều này thuận tiện trong trường hợp bạn cần chèn các biến vào biểu thức chính quy, hoặc tạo ra chúng một cách động.
Hãy xem xét một ví dụ. Giả sử chúng ta có chuỗi sau:
let str = 'img.png';
Giả sử chúng ta áp dụng biểu thức chính quy sau vào chuỗi này:
let reg = /\.(png|jpg)$/;
let res = str.match(reg);
Hãy viết lại biểu thức chính quy này
dưới dạng một chuỗi. Điều này được thực hiện bằng cách sử dụng
đối tượng đặc biệt RegExp:
let reg = new RegExp('\\.(png|jpg)$');
let res = str.match(reg);
Bây giờ hãy tách một phần của biểu thức chính quy ra thành một biến và chèn nó bằng cách sử dụng phép nối chuỗi:
let pat = 'png|jpg';
let reg = new RegExp('\\.(' + pat + ')$');
let res = str.match(reg);
Và bây giờ hãy chèn biến bằng cách sử dụng chuỗi mẫu:
let pat = 'png|jpg';
let reg = new RegExp(`\\.(${pat})$`);
let res = str.match(reg);
Và bây giờ hãy tạo một phần của biểu thức chính quy từ một mảng:
let exts = ['png', 'jpg'];
let pat = exts.join('|');
let reg = new RegExp(`\\.(${pat})$`);
let res = str.match(reg);
Bài tập thực hành
Hãy tách tên các vùng tên miền ra thành một biến riêng biệt:
let reg = /^[a-z]+\.(ru|by|ua)$/;
let res = reg.test(str);
Hãy sửa đổi bài tập trước với điều kiện là các vùng tên miền được lưu trữ dưới dạng một mảng:
let arr = ['ru', 'by', 'ua'];