Hướng dẫn match() trong javascript

Phương thức string.match() sẽ tìm kiếm các chuỗi con phù hợp với biểu thức chính quy được cung cấp. Phương thức sẽ trả về các chuỗi tìm được dưới dạng một mảng.

Hướng dẫn match() trong javascript

Hướng dẫn match() trong javascript

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Để hiểu rõ về biểu thức chính quy, bạn nên tham khảo tại đây.

Lưu ý:

  • nếu biểu thức chính quy không bao gồm modifier g ( ví dụ /img/g) thì phương thức string.match() sẽ chỉ trả về kết quả đầu tiên tìm được.
  • để tìm kiếm mà không phần biệt chữ hoa thường sử dụng modifier i( ví dụ /ain/i).

phương thức sẽ trả về NULL nếu không tìm thấy kết quả phù hợp.

Bài viết này được đăng tại [free tuts .net]

Cú phápstring.match(regexp)

Trong đó: 

  • regexp là biểu thức chính quy đại diện cho chuỗi cần tìm.

Cách sử dụng

Ví dụ: Sử dụng phương thức string.match() để tìm kiếm các kết quả trong chuỗi.

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <h2>Học lập trình miễn phí tại freetuts.net</h2>
 
        <button onclick="myFunction()">Run</button>
 
        <p id="demo"></p>
 
        <script>
            function myFunction() {
                var str = "hoc lap trinh MIEN PHI tai freetuts.net";
                //tìm kiếm các chuỗi có kí tự a và một kí tự bất kỳ theo sau không phân biệt chữ hoa thường
                var content = str.match(/i./ig);
                //kiểm tra kiểu của kết quả trả về
                content = content + '<br> kiểu dữ liệu: ' + typeof(content);
                document.getElementById("demo").innerHTML = content;
            }
        </script>
    </body>
</html>

Kết quả

in,IE,I ,i 
kiểu dữ liệu: object

Tham khảo: w3schools.com

1) Giới thiệu phương thức match() trong JavaScript

- Phương thức match() dùng để trả về ký tự (hoặc chuỗi ký tự) trùng khớp với ký tự (hoặc chuỗi ký tự) mà bạn muốn tìm kiếm bên trong một chuỗi nào đó.

<script>
    var text = "Tài liệu học lập trình web từ cơ bản đến nâng cao";
    var a = text.match("web");
</script>

- Biến a sẽ lưu trữ những chữ web được tìm thấy trong chuỗi text, và chữ web được tìm thấy trong chuỗi text chính là:

Tài liệu học lập trình web từ cơ bản đến nâng cao

- Tuy nhiên, có hai vấn đề lớn đối với việc tìm kiếm ký tự trong chuỗi bằng phương thức match():

  • Thứ nhất: Phương thức match() phân biệt trường hợp chữ in hoa và chữ thường.
  • Thứ hai: Phương thức match() chỉ trả về kết quả đầu tiên được tìm thấy.

<script>
    var text = "Tài liệu học lập trình web từ cơ bản đến nâng cao";
    var a = text.match("Web");
</script>

- Phương thức match() sẽ không tìm được chuỗi nào bên trong text trùng khớp với chữ Web

Tài liệu học lập trình web từ cơ bản đến nâng cao

<script>
    var text = "Tài liệu học lập trình web từ cơ bản đến nâng cao";
    var a = text.match("c");
</script>

- Trong chuỗi text có đến 3 chữ c nhưng phương thức match() chỉ tìm tới chữ c đầu tiên

Tài liệu học lập trình web từ cơ bản đến nâng cao

- Từ đây, để hai quyết hai vấn đề này thì ta phải sử dụng đến biểu thức chính quy.

2) Biểu thức chính quy

- Biểu thức chính quy (Regular Expression) dùng để xây dựng nên một mẫu tìm kiếm chuỗi

- Khi bạn muốn tìm một thứ gì đó bên trong chuỗi thì biểu thức chính quy sẽ mô tả thứ mà bạn đang muốn tìm.

- Biểu thức chính quy sẽ có cú pháp như sau:

/ký tự hoặc chuỗi ký tự mà bạn muốn tìm/bổ nghĩa

- Trong đó, "bổ nghĩa" có hai loại phổ biến:

  • i không phân biệt chữ in hoa hay chữ thường đối với ký tự hoặc chuỗi ký tự mà bạn muốn tìm.
  • g tìm tất cả các trường hợp trùng khớp.

Tìm chữ wEb (không phân biệt trường hợp chữ in hoa hay chữ thường) bên trong chuỗi text

<script>
    var text = "Web cơ bản (webcoban.vn) hướng dẫn làm website";
    var a = text.match(/wEb/i);
</script>

- Phương thức match() sẽ tìm thấy:

Web cơ bản (webcoban.vn) hướng dẫn làm website

Tìm tất cả những chữ web bên trong chuỗi text

<script>
    var text = "Web cơ bản (webcoban.vn) hướng dẫn làm website";
    var a = text.match(/web/g);
</script>

- Phương thức match() sẽ tìm thấy:

Web cơ bản (webcoban.vn) hướng dẫn làm website

Tìm tất cả những chữ wEB (không phân biệt trường hợp chữ in hoa hay chữ thường) bên trong chuỗi text

<script>
    var text = "Web cơ bản (webcoban.vn) hướng dẫn làm website";
    var a = text.match(/wEB/gi);
</script>

- Phương thức match() sẽ tìm thấy:

Web cơ bản (webcoban.vn) hướng dẫn làm website