😏 Biên Giới 😏

Biên giới trong biểu thức chính quy regular

Biên giới \b cũng rất quan trọng. Các bạn học Regexp thì cũng bắt buộc phải biết
js_masterRegular
Regular-Expression-trong-JavaScript.jpg

Chào các bạn

Trong bài viết này mình sẽ nói về biên giới trong biểu thức chính quy Regexp

Biên giới

Biên giới \b trong biểu thức chính quy Regexp cũng rất quan trọng. Các bạn cũng bắt buộc phải nhớ để thao tác với chuỗi một cách thuận tiện nhất

Cú pháp

1let str = "Hồ Quang Trí"
2
3let reg = /\b\w+\b/
Trận đấuMô tả
/\b\w+\b/Biên giới \b dùng để xác định ranh giới của một từ

Vị trí để xác định ranh giới của một từ.

  1. Bắt đầu bằng \w
  2. Giửa 2 ký tự trong từ một là \w một khác \W

Cũng khó định nghĩa về cái này quá. Các bạn thông cảm.

1let str = "Hồ Quang Trí"
2
3let reg = /\b\w+\b/
4
5let ketQua = str.match(reg);
6
7console.log(ketQua); // ['H', index: 0, input: 'Hồ Quang Trí', groups: undefined]

Ý nghĩa của trận đấu /\b\w+\b/ này là. Bắt đầu bằng biên giới \b tiếp theo là lớp ký tự \w tương đương [a-z0-9-A-Z_] tiếp đến là định lượng tham lam + tiếp theo là biên giới \b

Nếu các bạn chưa hiểu về ý nghĩa của các lớp đó thì nên xem lại các bài trước nhé.

Như các bạn có thể thấy. Đầu ra của chúng ta là một mảng các kết quả. Hành vi này do phương pháp match gây ra. Nếu các bạn cũng chưa biết thì cũng nên xem lại các bài hướng dẫn trước của mình.

Lưu Ý: Các bạn nhìn thấy đầu ra của chúng ta ngay vị trí thứ 0 là H chứ không phải là Hồ. Đơn giản là vì không thuộc lớp \w

Nếu có bài tập nào đó thầy giáo bắt bạn đếm các từ trong chuỗi thì sẻ sai nhé. Khái niệm biên giới \b nó khác rất là nhiều chứ không phải là đếm từ theo khoảng trắng \s đâu nhé. Nên các bạn cẩn thận.

Chúng ta nên đổi lại ví dụ một chút. Bây giờ chúng ta chỉ cần dùng lớp \w thôi.

1let str = "Ho! Quang1 @Tri -Demo#";
2
3let reg = /\b\w+\b/g
4
5let ketQua = str.match(reg);
6
7console.log(ketQua); // ['Ho', 'Quang1', 'Tri', 'Demo']

Như các bạn có thể thấy đầu ra chúng ta bây giờ là một mảng kết quả. Hành vi này là do cờ g gây ra. Đơn nhiên là cũng tùy phương pháp các bạn áp dụng. Nếu dùng phương pháp matchAll thì kết quả đầu ra sẻ khác.

1let str = "Ho! Quang1 @Tri -Demo#";
2
3let reg = /\b\w+\b/g
4
5let ketQua = str.matchAll(reg);
6
7for (let v of ketQua) {
8    console.log(v); 
9
10    // ['Ho', index: 0, input: 'Ho! Quang1 @Tri -Demo#', groups: undefined]
11    // ['Quang1', index: 4, input: 'Ho! Quang1 @Tri -Demo#', groups: undefined]
12    // ['Tri', index: 12, input: 'Ho! Quang1 @Tri -Demo#', groups: undefined]
13    // ['Demo', index: 17, input: 'Ho! Quang1 @Tri -Demo#', groups: undefined]
14}

Đơn nhiên là mình có thể dùng nhiều phương pháp khác nếu thích. Tùy thuộc vào bài toán mình áp dụng.

Tổng kết

Cuối cùng mình chỉ cần các bạn nhớ biên giới là \b vậy là đủ rồi. Còn áp dụng vào thực tế thì chỉ cần tùy vào bài toán thôi. Chứ mình ít sài lắm. Nhưng với mình thì mình nhớ, vì học lâu với nhiều rồi.

[OK] từ từ rồi sẽ đi lên thôi.

  • biên giới
  • string
  • chuỗi
  • object

OFFJS.COM - Blog học tập giải trí - 🐲

Chia sẻ nhiều kiến thức thú vị trong lập trình cũng như cuộc sống.

Giới thiệu


Trang web này mình sẽ nói về kiến thức lập trình và cuộc sống mà các bạn mới học hay đang dự định học. Có một bước đi đầu đời vững chắc.

Hồ Quang Trí.jpg

Đi kèm với đó là những lý thuyết và các dòng code minh họa. Để các bạn dễ hình dung.

Đơn nhiên cũng không dễ dàng ngày một ngày hai mà học hết được.

Học Tập Là Một Con Đường Dài Vô Tận

Nó sẽ nuốt các bạn vô số thời gian nhưng bù lại khi đã biết thì mọi thứ thật là tuyệt.

1console.log("Hồ Quang Trí");

Nếu có ai nói bạn học lập trình trong vòng 3 đến 6 tháng thì mình xin nói thật không bao giờ có chuyện đó nhé.

Chúc các bạn thành công.

Chân trang

phone-toan-phat.png

0353210168

address-toan-phat.png

Việt Nam