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

II. Tạo một biểu thức chính quy

Ta có thể tạo biểu thức chính quy theo 2 cách sau

  • Sử dụng cách mô tả chính quy định chính quy [biểu thức chính quy bằng chữ]

    var re = /ab+c/;
    

    Các đoạn mã chứa các mô tả chính quy thuần túy sau khi được tải vào bộ nhớ sẽ dịch các đoạn mô tả đó thành các biểu thức chính quy. Các biểu thức chính quy được dịch ra này sẽ được coi là hằng số, tức là không cần phải tạo lại nhiều lần, điều này giúp cho hiệu quả thực hiện tốt hơn

  • Tạo một đối tượng

    var myRe = /d[b+]d/g;
    var myArray = myRe.exec["cdbbdbsbz"];
    
    0

    var re = new RegExp["ab+c"];
    

    Với cách này, các biểu thức quy định chính sẽ được dịch ra khi thực hiện chương trình thi nên hiệu năng không đạt được như việc sử dụng cách mô tả quy tắc chính. Nhưng ưu điểm là nó có thể thay đổi được, nên chúng ta thường sử dụng chúng khi chúng ta muốn nó có thể thay đổi được, hoặc khi chúng ta không chắc chắn về các mẫu chính quy [mẫu] có giới hạn như khi nhập từ bàn phím

III. Cách viết một mẫu biểu thức chính quy

Mộ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

var myRe = /d[b+]d/g;
var myArray = myRe.exec["cdbbdbsbz"];
1 này sau khi tìm kiếm có thể nhớ lại để sử dụng cho các lần sau

1. 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

var myRe = /d[b+]d/g;
var myArray = myRe.exec["cdbbdbsbz"];
2 sẽ tìm các đoạn
var myRe = /d[b+]d/g;
var myArray = myRe.exec["cdbbdbsbz"];
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
var myRe = /d[b+]d/g;
var myArray = myRe.exec["cdbbdbsbz"];
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 c

2. 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ự '

var myRe = /d[b+]d/g;
var myArray = myRe.exec["cdbbdbsbz"];
5, theo sau là không có hoặc có một hoặc có nhiều ký tự
var myRe = /d[b+]d/g;
var myArray = myRe.exec["cdbbdbsbz"];
6, cuối cùng là một ký tự
var myRe = /d[b+]d/g;
var myArray = myRe.exec["cdbbdbsbz"];
7 như chuỗi
var myRe = /d[b+]d/g;
var myArray = myRe.exec["cdbbdbsbz"];
8 sẽ được đối sánh với xếp con
var myRe = /d[b+]d/g;
var myArray = myRe.exec["cdbbdbsbz"];
9

Bả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

var myRe = /d[b+]d/g;
var myArray = myRe.exec["cdbbdbsbz"];
20

Ví 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 quy

Biểu thức chính quy được sử dụng với phương thức

var myRe = /d[b+]d/g;
var myArray = myRe.exec["cdbbdbsbz"];
21 và
var myRe = /d[b+]d/g;
var myArray = myRe.exec["cdbbdbsbz"];
22 của lớp
var myRe = /d[b+]d/g;
var myArray = myRe.exec["cdbbdbsbz"];
0 hoặc phương thức
var myRe = /d[b+]d/g;
var myArray = myRe.exec["cdbbdbsbz"];
24 và
var myRe = /d[b+]d/g;
var myArray = myRe.exec["cdbbdbsbz"];
25 của
var myRe = /d[b+]d/g;
var myArray = myRe.exec["cdbbdbsbz"];
26. Những phương thức này được giải thích chi tiết trong
var myRe = /d[b+]d/g;
var myArray = myRe.exec["cdbbdbsbz"];
27

Như 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

var myRe = /d[b+]d/g;
var myArray = myRe.exec["cdbbdbsbz"];

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

var myRe = /d[b+]d/g;
var myArray = myRe.exec["cdbbdbsbz"];
2

Nếu bạn muốn khởi tạo một biểu thức chính quy từ một chuỗi

var re = new RegExp["ab+c"];
2

With 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

var re = new RegExp["ab+c"];
3

Kết quả hiển thị là

var re = new RegExp["ab+c"];
4

Tuy nhiên nếu bạn chạy

var re = new RegExp["ab+c"];
5

Thì kết quả hiển thị sẽ là

var re = new RegExp["ab+c"];
6

Sự 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

var myRe = /d[b+]d/g;
var myArray = myRe.exec["cdbbdbsbz"];
28 để chuyển đổi các từ trong chuỗi. Trong chuỗi thay thế, ta sử dụng
var myRe = /d[b+]d/g;
var myArray = myRe.exec["cdbbdbsbz"];
29 và
var re = new RegExp["ab+c"];
20 để chỉ các chuỗi khớp với mẫu trong trích dẫn ở vị trí thứ 1 và 2

Chủ Đề