JavaScript: match()
Cùng với các phương thức test() và exec() của đối tượng RegExp thì đối tượng String cũng cung cấp cho ta bốn phương thức dùng để làm việc với các biểu thức chính quy là match(), replace(), search() và split(). Trong bài viết này ta sẽ tìm hiểu phương thức match(), các bài viết phía sau sẽ trình bày những phương thức còn lại.
Phương thức match()
Tương tự như phương thức exec(), phương thức match() dùng để tìm kiếm chuỗi mẫu trong chuỗi dữ liệu và trả về một mảng trong đó mỗi phần tử của mảng chứa mẫu đó được tìm thấy, nếu không tìm thấy thì match() sẽ trả về null. Nếu sử dụng flag (tùy chọn) g thì phương thức match() sẽ tìm kiếm trên toàn bộ chuỗi dữ liệu.
Cú pháp
var array = Chuỗi_dữ_liệu.match(Chuỗi_mẫu);
Ví dụ:
var matchList = "Too much, too soon".match(/too/ig);
<html>
<head>
<title>The match() Method</title>
</head><body>
<font size="+1"><font face="arial, helvetica">
<script language = "JavaScript">
1 var matchArray = new Array();
2 var string="I love the smell of clover."
3 var regex = /love/g;
4 matchArray=string.match(regex);
5 document.write("Found "+ matchArray.length +" matches.<br>");
</script>
</body>
</html>
GIẢI THÍCH
-
Tạo một đối tượng mảng mới.
-
Tạo một biến có tên string và được gán một chuỗi là "I love the smell of clover."
-
Tạo một biểu thức chính quy có tên regex và được gán cho chuỗi mẫu là một chuỗi bất kỳ có chứa từ "love". bổ từ g sẽ tiến hành tìm kiếm trên toàn bộ chuỗi dữ liệu.
-
Phương thức match() được sử dụng, biểu thức chính quy được truyền dưới dạng đối số. Mỗi khi mẫu /love/ được tìm thấy trong chuỗi dữ liệu thì nó sẽ được gán như một phần tử mới của mảng matchArray. Nếu ta bỏ đi bổ từ g thì sau khi match() tìm thấy mẫu trong chuỗi dữ liệu và gán cho phần tử của mảng mathArray xong thì nó sẽ dừng việc tìm kiếm (ignore).
-
Kích thước của mảng matchArray sẽ cho ta biết match() đã tìm thấy bao nhiêu mẫu /love/ trong chuỗi dữ liệu.