Dấu ngoặc nhọn trong biểu thức chính quy JavaScript
Các toán tử '+', '*', '?'
rất tốt, tuy nhiên, chúng không thể chỉ định
một số lần lặp cụ thể. Trong trường hợp này,
toán tử {} sẽ giúp bạn.
Nó hoạt động như sau: {5}
- năm lần lặp, {2,5} – lặp lại
từ hai đến năm (bao gồm cả hai), {2,}
- lặp lại hai lần trở lên. Hãy chú ý
rằng không có biến thể này - {,2}
- không tồn tại. Hãy xem các ví dụ:
Ví dụ
Trong ví dụ này, mẫu tìm kiếm trông như thế này:
chữ cái 'x', chữ cái 'a' một
hoặc hai lần, chữ cái 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,2}x/g, '!');
Kết quả, biến sẽ ghi lại điều sau:
'xx ! ! xaaax'
Ví dụ
Trong ví dụ này, mẫu tìm kiếm trông như thế này:
chữ cái 'x', chữ cái 'a' hai
lần trở lên, chữ cái 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{2,}x/g, '!');
Kết quả, biến sẽ ghi lại điều sau:
'xx xax ! !'
Ví dụ
Trong ví dụ này, mẫu tìm kiếm trông như thế này:
chữ cái 'x', chữ cái 'a' ba
lần, chữ cái 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{3}x/g, '!');
Kết quả, biến sẽ ghi lại điều sau:
'xx xax xaax !'
Ví dụ
Trong ví dụ này, mẫu tìm kiếm trông như thế này:
chữ cái 'a' mười lần:
let str = 'aaa aaaaaaaaaa aaa';
let res = str.replace(/a{10}/g, '!');
Kết quả, biến sẽ ghi lại điều sau:
'aaa ! aaa'
Ví dụ
Trong ví dụ này, tác giả mã muốn một mẫu như vậy:
chữ cái 'x', chữ cái 'a' ba
lần trở xuống, chữ cái 'x',
nhưng, thật không may, điều này - {,3} - không hoạt động.
Cần chỉ định rõ ràng:
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,3}x/g, '!');
Kết quả, biến sẽ ghi lại điều sau:
'xx ! ! !'
Ví dụ
Số không cũng được cho phép:
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{0,3}x/g, '!');
Kết quả, biến sẽ ghi lại điều sau:
'! ! ! !'
Bài tập thực hành
Cho một chuỗi:
let str = 'aa aba abba abbba abbbba abbbbba';
Viết biểu thức chính quy tìm các chuỗi
'abba', 'abbba', 'abbbba'
và chỉ chúng.
Cho một chuỗi:
let str = 'aa aba abba abbba abbbba abbbbba';
Viết biểu thức chính quy tìm các chuỗi
dạng 'aba', trong đó 'b' xuất hiện
ít hơn 3 lần (bao gồm).
Cho một chuỗi:
let str = 'aa aba abba abbba abbbba abbbbba';
Viết biểu thức chính quy tìm các chuỗi
dạng 'aba', trong đó 'b' xuất hiện
nhiều hơn 4 lần (bao gồm).