⊗jsSpREHHy 110 of 294 menu

Dấu gạch ngang bên trong bộ ký tự trong biểu thức chính quy JavaScript

Dấu gạch ngang - cũng là ký tự đặc biệt bên trong [ ] (còn bên ngoài thì không). Nếu bạn cần chính dấu gạch ngang như một ký tự - hãy đặt nó ở vị trí mà nó sẽ không được hiểu là dấu phân cách nhóm.

Tại sao điều này quan trọng: bạn có thể tạo ra một nhóm ký tự mà không hề nhận ra. Ví dụ, như thế này - '[:-@]' - bạn nghĩ rằng bạn đang chọn dấu hai chấm, dấu gạch ngang và dấu @, nhưng thực ra lại là một nhóm các ký tự nằm giữa :@. Nhóm này bao gồm các ký tự sau: ? < = > : ;

Chúng lấy từ đâu ra? Từ bảng ASCII - dấu hai chấm có số thứ tự nhỏ hơn dấu @ - và kết quả là một nhóm. Tức là tất cả các nhóm được tạo ra dựa trên bảng ASCII (nếu muốn có thể sử dụng điều này).

Cách xử lý: đặt ký tự dấu gạch ngang ở nơi mà nó chắc chắn sẽ không bị hiểu là ký tự tạo nhóm, ví dụ, ở đầu hoặc ở cuối (tức là sau [hoặc trước ]).

Cũng có thể thoát dấu gạch ngang - khi đó nó sẽ đại diện cho chính nó bất kể vị trí. Ví dụ, thay vì [:-@] hãy viết [:\-@] - và sẽ không có nhóm nữa, mà sẽ có ba ký tự - dấu hai chấm, dấu gạch ngang và dấu @ @.

Ví dụ

Trong ví dụ sau, mẫu tìm kiếm như sau: chữ số 1, sau đó là chữ cái từ 'a' đến 'z', sau đó là chữ số 2:

let str = '1a2 1-2 1c2 1z2'; let res = str.replace(/1[a-z]2/g, '!');

Kết quả, biến sẽ ghi nhận giá trị sau:

'! 1-2 ! !'

Ví dụ

Bây giờ hãy thoát dấu gạch ngang. Kết quả mẫu tìm kiếm như sau: chữ số 1, sau đó là chữ cái 'a', hoặc dấu gạch ngang, hoặc chữ cái 'z', sau đó là chữ số 2:

let str = '1a2 1-2 1c2 1z2'; let res = str.replace(/1[a\-z]2/g, '!');

Kết quả, biến sẽ ghi nhận giá trị sau:

'! ! 1c2 !'

Ví dụ

Có thể chỉ cần đổi vị trí dấu gạch ngang mà không cần thoát nó:

let str = '1a2 1-2 1c2 1z2'; let res = str.replace(/1[az-]2/g, '!');

Kết quả, biến sẽ ghi nhận giá trị sau:

'! ! 1c2 !'

Ví dụ

Trong ví dụ sau, mẫu tìm kiếm như sau: ký tự đầu tiên - là chữ cái thường hoặc dấu gạch ngang '-', sau đó là hai chữ cái 'x':

let str = 'axx Axx -xx @xx'; let res = str.replace(/[a-z-]xx/g, '!');

Kết quả, biến sẽ ghi nhận giá trị sau:

'! Axx ! @xx'

Ví dụ

Trong ví dụ sau, mẫu tìm kiếm như sau: ký tự đầu tiên - là chữ cái thường, chữ cái hoa hoặc dấu gạch ngang '-', sau đó là hai chữ cái 'x':

let str = 'axx Axx -xx @xx'; let res = str.replace(/[a-zA-Z-]xx/g, '!');

Kết quả, biến sẽ ghi nhận giá trị sau:

'! ! ! @xx'

Ví dụ

Có thể đặt dấu gạch ngang giữa hai nhóm - ở đó chắc chắn nó sẽ không tạo thêm một nhóm khác:

let str = 'axx 9xx -xx @xx'; let res = str.replace(/[a-z-0-9]xx/g, '!');

Kết quả, biến sẽ ghi nhận giá trị sau:

'! ! ! @xx'

Bài tập thực hành

Cho chuỗi:

let str = 'xaz xBz xcz x-z x@z';

Tìm tất cả các chuỗi theo mẫu sau: chữ cái 'x', chữ cái hoa hoặc thường hoặc dấu gạch ngang, chữ cái 'z'.

Cho chuỗi:

let str = 'xaz x$z x-z xcz x+z x%z x*z';

Tìm tất cả các chuỗi theo mẫu sau: chữ cái 'x', sau đó là dấu đô la, hoặc dấu gạch ngang hoặc dấu cộng, sau đó là chữ cái 'z'.

Tiếng Việt
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối