Phương thức exec
Phương thức exec thực hiện tìm kiếm trong
chuỗi theo biểu thức chính quy đã cho. Kết quả trả về là chuỗi con
được tìm thấy và các nhóm bắt giữ (capture groups) của nó. Mỗi
lần gọi tiếp theo của phương thức này
sẽ bắt đầu tìm kiếm từ vị trí
mà chuỗi con được tìm thấy trước đó
kết thúc. Nếu không tìm thấy kết quả khớp
- nó trả về null.
Cú pháp
regular_expression.test(string);
Ví dụ
Hãy kiểm tra hoạt động của phương thức:
let str = '12 34 56';
let reg = /\d+/g;
let res1 = reg.exec(str);
console.log(res1);
let res2 = reg.exec(str);
console.log(res2);
let res3 = reg.exec(str);
console.log(res3);
let res4 = reg.exec(str);
console.log(res4);
Kết quả thực thi mã:
[12]
[34]
[56]
null
Ví dụ
Sử dụng phương thức trong vòng lặp:
let str = '12 34 56';
let reg = /\d+/g;
let res;
while (res = reg.exec(str)) {
console.log(res);
}
Kết quả thực thi mã:
[12]
[34]
[56]
Ví dụ
Các kết quả khớp tìm thấy có thể được phân tách theo các nhóm bắt giữ (capture groups):
let str = '12 34 56';
let reg = /(\d)(\d)/g;
let res;
while (res = reg.exec(str)) {
console.log(res);
}
Kết quả thực thi mã:
[12, 1, 2]
[34, 3, 4]
[56, 5, 6]
Ví dụ
Với thuộc tính lastIndex
bạn có thể đặt vị trí mà từ đó
bắt đầu tìm kiếm:
let str = '12 34 56';
let reg = /\d+/g;
reg.lastIndex = 2;
let res1 = reg.exec(str)
console.log(res1);
let res2 = reg.exec(str)
console.log(res2);
Kết quả thực thi mã:
[34]
[56]
Ví dụ
Với cờ y
bạn có thể cố định vị trí
bắt đầu tìm kiếm:
let str = '12 34 56';
let reg = /\d+/y;
reg.lastIndex = 2;
let res1 = reg.exec(str)
console.log(res1);
let res2 = reg.exec(str)
console.log(res2);
Kết quả thực thi mã:
null
[12]