JS中使用正則表達式g模式和非g模式的區(qū)別
先給大家說下js正則表達式中的g到底是什么意思
g是global的縮寫??!
就是匹配全部可匹配結果,
如果你不帶g,在正則過程中,字符串是從左至右匹配的,如果匹配成功就不再繼續(xù)向右匹配了,如果你帶g,它會重頭到尾的把正確匹配的字符串挑選出來
例如:
var str = 'aaaaaaaa' var reg1 = /a/ var reg2 = /a/g str.match(reg1) // 結果為:["a", index: 0, input: "aaaaaaaa"] str.match(reg2) // 結果為:["a", "a", "a", "a", "a", "a", "a", "a"]
js正則表達式g模式與非g模式的區(qū)別,具體代碼如下所示:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>mischen</title> <script> //js中使用正則表達式 function test(){ //生成正則表達式對象; // 在g模式下,正則表達式對象的exec和test方法,依賴 正則表達式對象的lastIndex屬性,而lastIndex會根據我們exec // 和test的執(zhí)行 發(fā)生偏移 如果沒有相應匹配 lastIndex 重歸0 //在非g模式下,正則表達式對象的exec和test方法, lastIndex 不會發(fā)生偏移 //exec方法 如果正則表達式中 有分組 第一個返回的是 匹配到的字符串 后面是根據分組分別返回的匹配的 字符串 var reg=new RegExp("\\d+[a-z]+","ig"); //字符串里 \ 表示轉譯 var str="123abc123def"; alert(reg.lastIndex);//0 alert(reg.exec(str));//123abc alert(reg.lastIndex);//6 alert(reg.test(str));//true alert(reg.lastIndex);//12 } // test(); test1(); function test1(){ //非g模式下使用 exec 和test var reg=new RegExp("\\d+[a-z]+","i"); var str="123abc123def"; // alert(reg.lastIndex);//0 // alert(reg.exec(str));//123abc // alert(reg.lastIndex);//0 // alert(reg.test(str));//true // alert(reg.lastIndex);//0 // alert(reg.exec(str));//123abc // alert(reg.lastIndex);//0 // alert(reg.test(str));//true // alert(reg.lastIndex);//0 var reg=new RegExp("(\\d+)([a-z]+)","i"); alert(reg.exec(str));//123abc,123,abc alert(reg.exec(str));//123abc,123,abc } </script> </head> <body> </body> </html>
以上所述是小編給大家介紹的JS中使用正則表達式g模式和非g模式的區(qū)別,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
相關文章
JavaScript 禁止用戶保存圖片的實現(xiàn)代碼
這篇文章主要介紹了JavaScript 禁止用戶保存圖片的實現(xiàn)代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04antd designable平臺的組件拖拽功能實現(xiàn)代碼
這篇文章主要介紹了antd designable平臺的組件拖拽功能實現(xiàn)代碼,本文給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧2024-07-07TypeScript判斷兩個數(shù)組的內容是否相等的實現(xiàn)
本文主要介紹了TypeScript?判斷兩個數(shù)組的內容是否相等,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-11-11uniapp-路由uni-simple-router安裝配置教程
專為uniapp打造的路由器,和uniapp深度集成,uniapp用到了很多vue的api,但在路由管理的功能相對于vue-router還是比較欠缺的,比如全局導航守衛(wèi),本文給大家講解uniapp-路由uni-simple-router相關知識,感興趣的朋友跟隨小編一起看看吧2022-11-11JavaScript前端開發(fā)時數(shù)值運算的小技巧
這篇文章主要介紹了JavaScript前端開發(fā)時數(shù)值運算的小技巧,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-07-07