<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        JS中正則表達式要注意lastIndex屬性

        來源:懂視網 責編:小采 時間:2020-11-27 22:33:19
        文檔

        JS中正則表達式要注意lastIndex屬性

        JS中正則表達式要注意lastIndex屬性: 說明 這篇文章,主要和大家聊聊JavaScript中RegExp對象的屬性。 解釋 每個RegExp對象都包含5個屬性,source、global、ignoreCase、multiline、lastIndex。 source:是一個只讀的字符串,包含正則表達式的文本。 var reg = /JavaScrip
        推薦度:
        導讀JS中正則表達式要注意lastIndex屬性: 說明 這篇文章,主要和大家聊聊JavaScript中RegExp對象的屬性。 解釋 每個RegExp對象都包含5個屬性,source、global、ignoreCase、multiline、lastIndex。 source:是一個只讀的字符串,包含正則表達式的文本。 var reg = /JavaScrip

         說明

        這篇文章,主要和大家聊聊JavaScript中RegExp對象的屬性。

        解釋

        每個RegExp對象都包含5個屬性,source、global、ignoreCase、multiline、lastIndex。

        source:是一個只讀的字符串,包含正則表達式的文本。

        var reg = /JavaScript/;
        reg.source; //返回 JavaScript

        global:是一個只讀的布爾值,看這個正則表達式是否帶有修飾符g。

        修飾符g,是全局匹配的意思,檢索字符串中所有的匹配。

        var str = "JavaScript";
        str.match(/JavaScript/); //只能匹配一個JavaScript 
        var str = "JavaScript JavaScript";
        str.match(/JavaScript/g); //能匹配兩個JavaScript 
        var reg = /JavaScript/;
        reg.global; //返回 false
        var reg = /JavaScript/g;
        reg.global; //返回 true

        ignoreCase:是一個只讀的布爾值,看這個正則表達式是否帶有修飾符i。

        修飾符i,說明模式匹配是不區分大小寫的。

        var reg = /JavaScript/;
        reg.ignoreCase; //返回 false
        var reg = /JavaScript/i;
        reg.ignoreCase; //返回 true
        var reg = /JavaScript/;
        reg.test("javascript"); //返回 false
        var reg = /JavaScript/i;
        reg.test("javascript"); //返回 true

        multiline:是一個只讀的布爾值,看這個正則表達式是否帶有修飾符m。

        修飾符m,用以在多行模式中執行匹配,需要配合^ 和 $</code> 使用,使用<code>^</code> 和 <code>$ 除了匹配整個字符串的開始和結尾之外,還能匹配每行的開始和結尾。

        var str="java\nJavaScript";
        str.match(/^JavaScript/); //返回null
        var str="java\nJavaScript";
        str.match(/^JavaScript/m); //匹配到一個JavaScript
        var reg=/JavaScript/;
        reg.multiline; //返回false
        var reg=/JavaScript/m;
        reg.multiline; //返回true

        lastIndex:是一個可讀/寫的整數,如果匹配模式中帶有g修飾符,這個屬性存儲在整個字符串中下一次檢索的開始位置,這個屬性會被exec( ) 和 test( ) 方法用到。

        exec( )方法是在一個字符串中執行匹配檢索,如果它沒有找到任何匹配,它就返回null,但如果它找到了一個匹配,它就返回一個數組。

        當調用exec( )的正則表達式對象具有修飾符g時,它將把當前正則表達式對象的lastIndex屬性設置為緊挨著匹配子串的字符位置,當同一個正則表達式第二次調用exec( ),它會將從lastIndex屬性所指示的字符串處開始檢索,如果exec( )沒有發現任何匹配結果,它會將lastIndex重置為0。

        這里寫圖片描述

        test( )方法,它的參數是一個字符串,用test( )對某個字符串進行檢測,如果包含正則表達式的一個匹配結果,則返回true,否則返回false。

        var str="java";
        var reg=/JavaScript/;
        reg.test(str); //返回false
        var str="JavaScript";
        var reg=/JavaScript/;
        reg.test(str); //返回true

        當調用test( )的正則表達式對象具有修飾符g時,它的行為和exec( )相同,因為它從lastIndex指定的位置處開始檢索某個字符串,如果它找到了一個匹配結果,那么它就立即設置lastIndex為緊挨著匹配子串的字符位置

        看看下面這段有趣的代碼

        var str="JavaScript";
        var reg=/JavaScript/g;
        console.log(reg.test(str)); //打印 true
        console.log(reg.test(str)); //打印 false

        為什么同樣的字符串,同樣的正則表達式,卻打印的不一樣,如果你已經理解了 lastIndex屬性,那你一定明白為什么。

        我們來看看到底發什么了什么

        var str="JavaScript";
        var reg=/JavaScript/g;
        console.log(reg.test(str)); //打印 true
        console.log(reg.lastIndex);
        //打印10,因為匹配到了JavaScript,所以設置lastIndex為匹配結果緊挨著的字符位置
        console.log(reg.test(str));
        //打印 false,因為從lastIndex位置檢索字符串,已經沒有匹配結果了
        console.log(reg.lastIndex);
        //打印0,因為沒有匹配到結果,所以將lastIndex重置為0

        這里注意一點,如果第一次調用test( )匹配結束后,我們手動將lastIndex重置為0,那么第二次調用test( ),同樣可以打印true

        var str="java JavaScript java";
        var reg=/JavaScript/g;
        console.log(reg.test(str)); //打印 true
        reg.lastIndex=0;
        console.log(reg.test(str)); //打印 true
        
        

        在強調一次,上面說的關于lastIndex的問題,都是因為正則表達式對象中帶有修飾符g,如果不帶有修飾符g,就不用擔心這些問題了。

        總結

        這次主要是說說,JavaScript中正則表達式對象的5個屬性,而最需要注意的就是lastIndex屬性了。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        JS中正則表達式要注意lastIndex屬性

        JS中正則表達式要注意lastIndex屬性: 說明 這篇文章,主要和大家聊聊JavaScript中RegExp對象的屬性。 解釋 每個RegExp對象都包含5個屬性,source、global、ignoreCase、multiline、lastIndex。 source:是一個只讀的字符串,包含正則表達式的文本。 var reg = /JavaScrip
        推薦度:
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲国产精品一区二区九九| 69视频免费在线观看| 免费的一级片网站| 亚洲人成免费网站| 免费黄色网址网站| 亚洲一卡2卡3卡4卡5卡6卡| 国产卡一卡二卡三免费入口| 亚洲制服丝袜第一页| 国内自产少妇自拍区免费| 亚洲AⅤ男人的天堂在线观看 | 国产福利免费视频| 亚洲精品无码成人片久久| a在线观看免费视频| 国产精品亚洲а∨无码播放| 日本一区二区免费看| 亚洲精品成人网站在线播放| 手机在线免费视频| 国产亚洲综合久久| 亚洲VA中文字幕无码毛片| 99re6热视频精品免费观看 | 无码欧精品亚洲日韩一区夜夜嗨 | 亚洲中文字幕无码一区二区三区| 97在线免费观看视频| 亚洲高清中文字幕| 嫩草视频在线免费观看| 麻豆一区二区三区蜜桃免费| 久久精品国产精品亚洲下载 | 国产一级在线免费观看| 91亚洲精品视频| 女人被男人躁的女爽免费视频| 黄色毛片免费网站| 亚洲AV电影院在线观看| 成人黄动漫画免费网站视频| 老外毛片免费视频播放| 亚洲AV日韩精品久久久久| 无人在线观看免费高清视频| 一级毛片**免费看试看20分钟| 亚洲高清不卡视频| 亚洲人成人无码网www国产| 四虎永久在线观看免费网站网址 | a一级爱做片免费|