JavaScript 正則表達式對象RegExp

一個正則表達式通常由以下部分組成:

1一個用於匹配的模式文本

2用0個或多個修飾符描述的匹配模式細節

eg:var re=new RegExp("j.*t");

     var re=/j.*t/

*:0個或多個單元

.:任意字符

   RegExp對象的屬性:

global:若該屬性的值爲false,相關搜索在找到第一個位置就會停止。

ignoreCase:設置大小寫相關,默認爲false

multiline:設置是否跨行搜索的選項,默認爲false

lastIndex:搜索開始的索引爲,默認爲0

source:用於存儲正則表達式匹配模式的屬性

注意:除了lastIndex外,上面所有屬性在對象創建之後就都不能被修改了。


RegExp對象的方法:

test()返回值是布爾值,找到匹配內容,返回True

exec()返回的則是由匹配字符串組成的數組。

eg:var str='JavaScript';
/j.*/igm.test(str)

//true

var str='JavaScript';
/j.*/ig.exec(str)[0]

//["JavaScript"]

  以正則表達式爲參數的字符串方法:

match():返回一個包含匹配內容的數組

search():返回是第一個匹配內容所在位置

replace():將匹配文本替換成指定的字符串

split():根據指定的正則表達式將目標字符串分割成若干個數組元素

eg:var str=new String('JavaScript');
str.match(/J/)

//["J"]


var str=new String('JavaScript');
str.search(/J/)

//0

var str=new String('JavaScript');
str.replace(/J/,'')

//avaScript


想讓相關替換的字符串中包含匹配的文本,可以使用修飾符$& ,

eg:str.replace(/[A-Z]/g,"_$&")

//"_Java_Script"

小例子:

提取E-mail的前半部分

var email=“[email protected]

var username=email.replace(/(.*)@.*/,"$1")

//test  $1表示匹配分組中的第一組

回調式替換:

function replaceCallback(match){

return "-"+match.toLowerCase();

}

str.replace(/[A-Z]/g,replaceCallback);

//"-java-script"

eg:

var glob;//參數數組

var re=/(.*)@(.*)\.(.*)/;

var callback=function(){

gloab=arguments;

return arguments[0] + "------" +arguments[1]+"----"+arguments[2]+"----"+arguments[3]+"----"+arguments[4]

}

"[email protected]".replace(re,callback);

//"[email protected]"

glaob;

//["[email protected]", "abcdef", "123", "com", 0, "[email protected]"]


首參數:正則表達式所匹配的內容
尾參數:被搜索的字符串
尾參數之前的參數:匹配內容所在位置
剩下的參數:有regexp模式所分組的所有匹配字符串組





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章