国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

初學(xué)JavaScript正則表達(dá)式

fai1017 / 3446人閱讀

摘要:規(guī)定正則表達(dá)式直接量的每次運(yùn)算都返回新對(duì)象。二正則對(duì)象的屬性和方法屬性個(gè)返回一個(gè)布爾值,表示是否設(shè)置了修飾符,該屬性只讀。返回正則表達(dá)式的字符串形式不包括斜杠,該屬性只讀。

一.創(chuàng)建正則表達(dá)的方式
    1.字面量或稱為直接量(不需要用任何的關(guān)鍵字說(shuō)明它是正則表達(dá)式,而是用斜杠來(lái)表示正則表達(dá)式的開(kāi)始和結(jié)束)
        eg:    var reg = /^w/;
    
    2.對(duì)象
        eg: var reg = new RegExp("^w");
    
    attentions:
        1)因?yàn)楹?jiǎn)潔方便,字面量創(chuàng)建的方式用的居多。
        2)ES5規(guī)定正則表達(dá)式直接量的每次運(yùn)算都返回新對(duì)象。
二、    正則對(duì)象的屬性和方法
    1.屬性(5個(gè))
        ignoreCase:返回一個(gè)布爾值,表示是否設(shè)置了i修飾符,該屬性只讀。
        global:返回一個(gè)布爾值,表示是否設(shè)置了g修飾符,該屬性只讀。
        multiline:返回一個(gè)布爾值,表示是否設(shè)置了m修飾符,該屬性只讀。
        lastIndex:返回下一次開(kāi)始搜索的位置。該屬性可讀寫,但是只在設(shè)置了g修飾符時(shí)有意義。
        source:返回正則表達(dá)式的字符串形式(不包括斜杠),該屬性只讀。
    eg:    
            var reg = /Hello/ig;
            console.log(reg.ignoreCase);    //true  
            console.log(reg.global);        //true
            console.log(reg.multiline);        //false    
            console.log(reg.lastIndex);        //0
            console.log(reg.source);        //Hello
    2.方法(3個(gè))
        test():    檢索字符串中的指定值。返回值是 true 或 false。
        exec():    如果發(fā)現(xiàn)匹配,就返回一個(gè)數(shù)組,成員是每一個(gè)匹配成功的子字符串,否則返回null。
        compile():    用于改變 RegExp
    eg:
    1)    var reg1 = /Hello/ig;                    
        console.log(reg1.test("Hello World!"));//true
        console.log(reg1.lastIndex);            //5
        console.log(reg1.test("HELLO World!"));    //false
        //attention:    當(dāng)正則表達(dá)式有g(shù)修飾時(shí),每一次運(yùn)算都會(huì)自動(dòng)更新lastIndex,下次運(yùn)算就從新的起點(diǎn)(lastIndex的值)開(kāi)始尋求匹配,而不是把字符串按從左到右去檢索。
        reg1.lastIndex = 0;
        console.log(reg1.test("HELLO World!"));    //true
        
    
    2)    var reg1 = /Hello/ig;
        var result = reg1.exec("Hello abc hello def");    
        console.log(result);        //["Hello"]
        console.log(result.input);    //Hello abc hello def
        console.log(result.index);     //0
        onsole.log(reg1.exec("Hello abc hello def"));    //["hello"]
        console.log("Hello abc hello def".match(reg1));    // ["Hello", "hello"]
    attention:    
                exec方法的返回?cái)?shù)組還包含以下兩個(gè)屬性:
                    input:整個(gè)原字符串。
                    index:整個(gè)模式匹配成功的開(kāi)始位置(從0開(kāi)始計(jì)數(shù))。
        
    3)    var patt1=new RegExp("e");
        console.log(patt1.test("The best things in life are free")); //true
        patt1.compile("d");
        console.log(patt1.test("The best things in life are free"));    //false        
三、語(yǔ)法
    1.修飾符及其描述        
        i    執(zhí)行對(duì)大小寫不敏感的匹配。
        g    執(zhí)行全局匹配(查找所有匹配而非在找到第一個(gè)匹配后停止)。
        m    執(zhí)行多行匹配。
    2.元字符(Metacharacter)是擁有特殊含義的字符:
        .    查找單個(gè)字符,匹配除回車(
)、換行(
) 、行分隔符(u2028)和段分隔符(u2029)以外的所有字符。
        cX 表示Ctrl-[X],其中的X是A-Z之中任一個(gè)英文字母,用來(lái)匹配控制字符。
        [] 匹配退格鍵(U+0008),不要與混淆。
        
 匹配換行鍵。
        
 匹配回車鍵。
        	 匹配制表符tab(U+0009)。
        v 匹配垂直制表符(U+000B)。
        f 匹配換頁(yè)符(U+000C)。