Regular Expression là gì?

Tham khảo tại đây >

Cú pháp

/pattern/modifier;

pattern: là chuỗi mẫu dùng so khớp;

modifier: dùng để so khớp theo tiêu chuẩn, gồm:

Modifier Mô tả
i So khớp không phân biệt hoa thường.
g So khớp tất cả thay vì dừng tại mẫu so khớp đầu tiên khi tìm thấy.
m Thực hiện so khớp nhiều dòng.

Ví dụ:


var patt = /ngocminhtran/i;

Dùng các phương thức chuỗi

Trong JavaScript, regular expression thường được dùng với hai phương thức chuỗi: search() và replace().

Phương thức search() dùng để tìm một so khớp và trả về vị trí của so khớp đầu tiên được tìm thấy. Tham số của phương thức search() có thể là một regular expression hay một chuỗi bình thường.

Ví dụ dùng với regular expression:


<p id="demo"> </p>

<script>

var str = "Welcome Ngocminhtran!";

var n = str.search(/ngocminhtran/i); // tìm không phân biệt hoa thường

document.getElementById("demo").innerHTML = n; //  8

</script>

Ví dụ dùng với chuỗi:


<p id="demo"> </p>

<script>

var str = "Welcome Ngocminhtran";

var n = str.search("Ngocminhtran");

document.getElementById("demo").innerHTML = n;

</script>

Phương thức replace() dùng để thay đổi chuỗi với mẫu được thay thế. Phương thức replace() có tham số là regular expression hay chuỗi thông thường.

Ví dụ tham số là một regular expression:


<p id="demo">Please visit Microsoft!</p>

<script>

var str = document.getElementById("demo").innerHTML;

var txt = str.replace(/microsoft/i,"ngocminhtran.com"); // không phân //biệt hoa thường

document.getElementById("demo").innerHTML = txt;

// Kết quả: Please visit ngocminhtran.com!

</script>

Ví dụ tham số là một chuỗi:


<p id="demo">Please visit Microsoft!</p>

<script>

var str = document.getElementById("demo").innerHTML;

var txt = str.replace("Microsoft","ngocminhtran.com"); // không phân //biệt hoa thường

document.getElementById("demo").innerHTML = txt;

// Kết quả: Please visit ngocminhtran.com!

</script>

Dùng đối tượng RegExp

Trong JavaScript, RegExp là một đối tượng regular expression với các thuộc tính và phương thức được định nghĩa trước.

Danh sách các thuộc tính

Thuộc tính Mô tả
constructor Trả về hàm tạo prototype của đối tượng RegExp
global Kiểm tra modifier g có được thiết lập
ignoreCase Kiểm tra modifier i có được thiết lập
lastIndex Xác định chỉ số bắt đầu cho so khớp tiếp theo
multiline Kiểm tra modifier m có được thiết lập
source Trả về văn bản của mẫu RegExp

 

Danh sách các phương thức

Phương thức Mô tả
exec() Kiểm tra một so khớp trong một chuỗi. Trả về so khớp đầu tiên.
test() Kiểm tra một so khớp trong một chuỗi. Trả về true hay false.
toString() Trả về giá trị chuỗi của regular expression.
compile() Biên dịch một regular expression. Không chấp nhận trong phiên bản 1.5.

Ví dụ thuộc tính constructor:


var patt = new RegExp("Hello World", "g");

var res = patt.constructor;

Kết quả:


function RegExp() { [native code] }

Ví dụ thuộc tính global:


var str = "Hello World!";

var patt1 = /Wor/g;

var res = patt1.global;

Kết quả:


true

Ví dụ thuộc tính ignoreCase:


var str = "Hello World!";

var patt1 = /Wor/i;

var res = patt1.ignoreCase;

Kết quả:


true

Ví dụ thuộc tính lastIndex:


var str = "The rain in Spain stays mainly in the plain";

var patt1 = /ain/g;

while (patt1.test(str) == true) {

document.write("'ain' found. Index now at: "+patt1.lastIndex);

document.write("<br>");

}

Kết quả:


'ain' found. Index now at: 8

'ain' found. Index now at: 17

'ain' found. Index now at: 28

'ain' found. Index now at: 43

Ví dụ thuộc tính multiline:


var str = "Hello World!";

var patt1 = /Wor/g;

var res = patt1.multiline;

Kết quả:


false

Ví dụ thuộc tính source:


var str = "Hello World!";

var patt1 = /Hello/g;

var res = "The text of the RegExp is: " + patt1.source;

Kết quả:


The text of the RegExp is: Hello

Ví dụ phương thức exec():


var str = "Hello World!";

var patt = new RegExp("e");

var res = patt.exec(str);

Kết quả:


e

Ví dụ phương thức test():


var str = "Hello World!";

var patt = new RegExp("e");

var res = patt.exec(str);

Kết quả:


true

Ví dụ phương thức toString():


var patt = new RegExp("Hello World", "g");

var res = patt.toString();

Kết quả:


/Hello World/g

< JavaScript cơ bản