Lệnh 'hoặc' trong biểu thức chính quy JavaScript
Trong bài học này, chúng ta sẽ phân tích lệnh
'|', đại diện cho một biến thể
mạnh mẽ hơn của 'hoặc' so với
lệnh [ ]. Lệnh này cho phép
chia biểu thức chính quy thành nhiều phần.
Khi đó, nội dung cần tìm có thể khớp với phần này
hoặc phần kia của biểu thức chính quy. Hãy cùng
xem các ví dụ.
Ví dụ
Trong ví dụ này, mẫu tìm kiếm như sau: ba
chữ cái 'a' hoặc ba chữ cái 'b':
let str = 'aaa bbb abb';
let res = str.replace(/a{3}|b{3}/g, '!');
Kết quả, biến sẽ ghi lại nội dung sau:
'! ! abb'
Ví dụ
Trong ví dụ này, mẫu tìm kiếm như sau: ba
chữ cái 'a' hoặc từ 1 trở lên
chữ cái 'b':
let str = 'aaa bbb bbbb bbbbb axx';
let res = str.replace(/a{3}|b+/g, '!');
Kết quả, biến sẽ ghi lại nội dung sau:
'! ! ! ! axx'
Ví dụ
Trong ví dụ này, mẫu tìm kiếm như sau: một hoặc nhiều chữ cái hoặc ba chữ số:
let str = 'a ab abc 1 12 123';
let res = str.replace(/[a-z]+|\d{3}/g, '!');
Kết quả, biến sẽ ghi lại nội dung sau:
'! ! ! 1 12 !'
Ví dụ
Dấu gạch dọc có thể chia biểu thức chính quy không chỉ thành hai phần, mà thành bất kỳ số phần nào:
let str = 'aaa bbb ccc ddd';
let res = str.replace(/a+|b+|c+/g, '!');
Kết quả, biến sẽ ghi lại nội dung sau:
'! ! ! ddd'
Ví dụ
Nếu dấu gạch dọc nằm trong dấu ngoặc tròn,
thì 'hoặc' chỉ hoạt động bên trong
những dấu ngoặc đó.
Lấy ví dụ, hãy tìm các chuỗi theo mẫu
sau: ở đầu là 'a',
hoặc 'b' một hoặc nhiều lần, sau đó
là hai chữ cái 'x':
let str = 'axx bxx bbxx exx';
let res = str.replace(/(a|b+)xx/g, '!');
Kết quả, biến sẽ ghi lại nội dung sau:
'! ! ! exx'
Bài tập thực hành
Cho chuỗi:
let str = 'aeeea aeea aea axa axxa axxxa';
Viết biểu thức chính quy tìm các chuỗi
theo mẫu: ở hai đầu là chữ cái 'a',
và giữa chúng - hoặc chữ cái 'e' với số lần bất kỳ
hoặc chữ cái 'x' với số lần bất kỳ.
Cho chuỗi:
let str = 'aeeea aeea aea axa axxa axxxa';
Viết biểu thức chính quy tìm các chuỗi
theo mẫu: ở hai đầu là chữ cái 'a',
và giữa chúng - hoặc chữ cái 'e' hai lần
hoặc chữ cái 'x' với số lần bất kỳ.