JavaScript Regular Expression - Object Properties and Methods

 

一、RegExp Object Properties

1、global:用來確認此 RegExp Object 是否有指定 global 屬性。

var r = new RegExp(/a/g);
console.log(r.global);

其結果為 true

 

2、ignoreCase:用來確認此 RegExp Object 是否有指定 ignoreCase 屬性。

console.log(/a/i.ignoreCase);

其結果為 true

 

3、multiline:用來確認此 RegExp Object 是否有指定 multiline 屬性。

var r = new RegExp(/a/, "m");
console.log(r.multiline);

其結果為 true

 

4、source:回傳該 RegExp 之 pattern 成字串。

var r = /123/;
console.log(r.source);

其結果為 "123"

 

5、lastIndex:回傳被比對到的位置。

var str = "12345178901";
var patt1 = /1/g;
while (patt1.test(str) == true) {
    document.write("'1' found. Index now at: " + patt1.lastIndex);
    document.write("<br>");
}

其結果為

'1' found. Index now at: 1
'1' found. Index now at: 6
'1' found. Index now at: 11

說明:

位置從 1 算起。如果找不到則回傳 0。

 

二、RegExp Object Methods

1、test()

用來每一次測試一字串是否可以找到指定 pattern。

var str = "12345178901";
var patt1 = /1/;
console.log(patt1.test(str));

其結果為 true

 

test() 方法可以用來回傳每一次是否可以找到指定 pattern。

var str = "12345178901";
var patt1 = /1/g;
while (patt1.test(str) == true) {
    console.log("'1' found. Index now at: " + patt1.lastIndex);
}

其結果為

"'1' found. Index now at: 1"
"'1' found. Index now at: 6"
"'1' found. Index now at: 11"

 

2、exec()

將每次比對成功的結果,其相關參數以陣列形式回傳。

var str = "12345178901";
var patt1 = /1/g;
var m1 = patt1.exec(str);
var m2 = patt1.exec(str);
var m3 = patt1.exec(str);
console.log("the pattern is " + m1[0] + ", find the position " + m1.index + ", the input string is " + m1.input);
console.log("the pattern is " + m2[0] + ", find the position " + m2.index + ", the input string is " + m2.input);
console.log("the pattern is " + m3[0] + ", find the position " + m3.index + ", the input string is " + m3.input);

其結果為

"the pattern is 1, find the position 0, the input string is 12345178901"
"the pattern is 1, find the position 5, the input string is 12345178901"
"the pattern is 1, find the position 10, the input string is 12345178901"

而單獨 m3 object 的內容為

 

3、toString()

將 regular expression 的 pattern 以字串形式回傳回去。

var patt1 = /1/g;
console.log(patt1.toString());

其結果為 "/1/g"

 

三、JavaScript String Methods 可應用到 RegExp 的方法

1、search()

從一字串裡,找尋第一次出現指定字串的起始位置。

語法:string.indexOf(regex)

 

2、replace()

根據 pattern 找到被比對到的字串,並且替換他。

語法:string.replace(regex, newvalue)

 

3、match()

根據 pattern 找到所有被比對到的字串,並回傳成陣列。

語法:string.match(regexp)

 

4、split()

根據分離子,把一字串拆成陣列。separator 可以是字元、字串、regular expression。

語法:string.split([separator[, limit]])