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:

javascriptlet 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:

javascriptlet 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:

javascriptlet 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:

javascriptlet 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:

javascriptlet 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:

javascriptlet 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

Задание 1

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:

javascriptlet reg = /^[a-z]+\.(ru|by|ua)$/;
let res = reg.test(str);
Задание 2

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:

javascriptlet arr = ['ru', 'by', 'ua'];