Javascript biểu tượng cảm xúc regex
Biểu thức chính quy (biểu thức chính quy ) là các mẫu được sử dụng để tìm kiếm các bộ ký tự được kết hợp với nhau trong các chuỗi ký tự. Trong JavaScript thì biểu thức chính quy cũng đồng thời là các đối tượng, tức là khi bạn tạo ra một biểu thức chính quy là bạn có một đối tượng tương ứng. Các mẫu này được sử dụng khá nhiều trong JavaScript như phương thức exec và test của RegExp, hay phương thức match, replace, search và split of String. Ở phạm vi bài viết này, ta cùng tìm hiểu chi tiết hơn về biểu thức chính quy trong JavaScript Show II. Tạo một biểu thức chính quyTa có thể tạo biểu thức chính quy theo 2 cách sau
III. Cách viết một mẫu biểu thức chính quyMột mẫu biểu thức chính quy là một tập hợp các ký tự thông thường, chẳng hạn như /abc/, hoặc một tập hợp cả ký tự thường và ký tự đặc biệt như /ab*c/ hoặc /Chương (\d+). \d*/. Trong ví dụ cuối cùng có chứa cả các dấu ngoặc đơn(())được sử dụng như các thiết bị ghi nhớ, tức là các mẫu trong phần 1 này sau khi tìm kiếm có thể nhớ lại để sử dụng cho các lần sau1. Sử dụng đơn giản mẫu Các mẫu đơn giản là các mẫu có thể được xây dựng từ các ký tự có thể tìm kiếm một cách trực tiếp Ví dụ mẫu 2 sẽ tìm các đoạn 3 theo đúng thứ tự đó trong các chuỗi. Mẫu này sẽ khớp với "Xin chào, Tên tôi là abc. " và "Tôi đến từ thành phố abcdef. ", because all 2 string this đều chứa đoạn 'abc'. Còn với chuỗi 4, nó sẽ không khớp vì chuỗi này không chứa abc theo đúng thứ tự, mà chỉ chứa ab c2. Sử dụng các ký tự đặc biệt Các mẫu có thể chứa các ký tự đặc biệt cho mục đích tìm kiếm nâng cao mà việc tìm kiếm trực tiếp sẽ khó khăn. Thí dụ như tìm một đoạn có chứa một hoặc nhiều hơn một ký tự b, hoặc tìm một hoặc nhiều ký tự dấu cách (trong khi dấu cách) Ví dụ sample /ab*c/ can't find the arrays. một ký tự ' 5, theo sau là không có hoặc có một hoặc có nhiều ký tự 6, cuối cùng là một ký tự 7 như chuỗi 8 sẽ được đối sánh với xếp con 9Bảng dưới đây mô tả đầy đủ các ký tự đặc biệt có thể sử dụng với biểu thức chính quy 3. Rendering used Ngoặc bao quanh bất kỳ phần nào của biểu thức chính quy sẽ tạo ra kết quả khớp được ghi nhớ. Mỗi lần nhớ, chuỗi con có thể được gọi lại để sử dụng, mô tả trong 20Ví dụ mẫu /Chương (\d+). \d*/ khớp đúng với 'Chương ' theo sau bởi một hoặc nhiều ký tự số, sau nữa là một dấu chấm thập phân, cuối cùng có thể là 0 hoặc nhiều ký tự số. Bên cạnh đó, dấu ngoặc tròn được sử dụng để ghi nhớ một hoặc nhiều ký tự số đầu tiên được khớp This sample was found in string "Open Chapter 4. 3, đoạn 6", memory '4' but could not found in string "Chapter 3 and 4", by because string that no có dấu chấm sau ký tự số '3' Để khớp một chuỗi con không nhớ, hãy đặt ?. at the first position in the key. Ví dụ, (?. \d+) khớp với một hoặc nhiều ký tự số nhưng không nhớ kết quả khớp IV. Làm việc với biểu thức chính quyBiểu thức chính quy được sử dụng với phương thức 21 và 22 của lớp 0 hoặc phương thức 24 và 25 của 26. Những phương thức này được giải thích chi tiết trong 27Như ví dụ dưới đây, phương thức exec được sử dụng để tìm chuỗi phù hợp theo mẫu so khớp
Nếu bạn không cần truy cập các thuộc tính khác của biểu thức chính quy, hãy sử dụng theo cách sau 2Nếu bạn muốn khởi tạo một biểu thức chính quy từ một chuỗi 2With this code, somatch to public and return an an arrays with the thuộc tính được liệt kê trong bảng dưới đây Như định dạng thứ 2 của ví dụ trên, bạn có thể sử dụng một biểu thức quy định chính được khởi động mà không gán nó cho một biến. Tuy nhiên, nếu bạn làm thế, mỗi lần xuất hiện là một biểu thức chính quy mới. Vì lí do này, nếu bạn không gán nó vào một biến, bạn sẽ không thể truy cập các thuộc tính của biểu thức chính quy đó nữa. Ví dụ bạn có đoạn script sau 3Kết quả hiển thị là 4Tuy nhiên nếu bạn chạy 5Thì kết quả hiển thị sẽ là 6Sự xuất hiện của /d(b+)d/g trong 2 lệnh trên là các đối tượng biểu thức chính quy định khác nhau và vì thế có các giá trị khác nhau cho thuộc tính lastIndex. Nếu bạn cần truy cập các thuộc tính của một biểu thức chính quy, bạn nên gán nó cho một biến Use nhiều dấu tròn Sử dụng nhiều dấu ngoặc kép trong một biểu thức quy tắc chính để tạo ra nhiều kết quả sao cho khớp tương ứng được ghi nhớ. Cho ví dụ, /a(b)c/ match with 'abc' and memory 'b'. Để gọi lại những kết quả so khớp, hãy sử dụng những phần tử của mảng [1]. , [N] Number of the string con in the problems are notgiới hạn. Mảng trả về giữ lại tất cả các thứ được tìm thấy Ví dụ Đoạn mã JavaScript dưới đây sử dụng phương thức 28 để chuyển đổi các từ trong chuỗi. Trong chuỗi thay thế, ta sử dụng 29 và 20 để chỉ các chuỗi khớp với mẫu trong trích dẫn ở vị trí thứ 1 và 2 |