JS中使用正則表達(dá)式g模式和非g模式的區(qū)別
先給大家說下js正則表達(dá)式中的g到底是什么意思
g是global的縮寫?。?/p>
就是匹配全部可匹配結(jié)果,
如果你不帶g,在正則過程中,字符串是從左至右匹配的,如果匹配成功就不再繼續(xù)向右匹配了,如果你帶g,它會重頭到尾的把正確匹配的字符串挑選出來
例如:
var str = 'aaaaaaaa' var reg1 = /a/ var reg2 = /a/g str.match(reg1) // 結(jié)果為:["a", index: 0, input: "aaaaaaaa"] str.match(reg2) // 結(jié)果為:["a", "a", "a", "a", "a", "a", "a", "a"]
js正則表達(dá)式g模式與非g模式的區(qū)別,具體代碼如下所示:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>mischen</title> <script> //js中使用正則表達(dá)式 function test(){ //生成正則表達(dá)式對象; // 在g模式下,正則表達(dá)式對象的exec和test方法,依賴 正則表達(dá)式對象的lastIndex屬性,而lastIndex會根據(jù)我們exec // 和test的執(zhí)行 發(fā)生偏移 如果沒有相應(yīng)匹配 lastIndex 重歸0 //在非g模式下,正則表達(dá)式對象的exec和test方法, lastIndex 不會發(fā)生偏移 //exec方法 如果正則表達(dá)式中 有分組 第一個返回的是 匹配到的字符串 后面是根據(jù)分組分別返回的匹配的 字符串 var reg=new RegExp("\\d+[a-z]+","ig"); //字符串里 \ 表示轉(zhuǎn)譯 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中使用正則表達(dá)式g模式和非g模式的區(qū)別,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
JS簡單實(shí)現(xiàn)滑動加載數(shù)據(jù)的方法示例
這篇文章主要介紹了JS簡單實(shí)現(xiàn)滑動加載數(shù)據(jù)的方法,涉及javascript事件響應(yīng)及頁面元素屬性動態(tài)操作相關(guān)技巧,需要的朋友可以參考下2017-10-10JavaScript 禁止用戶保存圖片的實(shí)現(xiàn)代碼
這篇文章主要介紹了JavaScript 禁止用戶保存圖片的實(shí)現(xiàn)代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04H5微信公眾號授權(quán)的簡單實(shí)現(xiàn)步驟
如果用戶在微信客戶端中訪問第三方網(wǎng)頁,公眾號可以通過微信網(wǎng)頁授權(quán)機(jī)制,來獲取用戶基本信息,進(jìn)而實(shí)現(xiàn)業(yè)務(wù)邏輯,這篇文章主要給大家介紹了關(guān)于微信公眾號授權(quán)的相關(guān)資料,需要的朋友可以參考下2021-07-07antd designable平臺的組件拖拽功能實(shí)現(xiàn)代碼
這篇文章主要介紹了antd designable平臺的組件拖拽功能實(shí)現(xiàn)代碼,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-07-07TypeScript判斷兩個數(shù)組的內(nèi)容是否相等的實(shí)現(xiàn)
本文主要介紹了TypeScript?判斷兩個數(shù)組的內(nèi)容是否相等,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-11-11uniapp-路由uni-simple-router安裝配置教程
專為uniapp打造的路由器,和uniapp深度集成,uniapp用到了很多vue的api,但在路由管理的功能相對于vue-router還是比較欠缺的,比如全局導(dǎo)航守衛(wèi),本文給大家講解uniapp-路由uni-simple-router相關(guān)知識,感興趣的朋友跟隨小編一起看看吧2022-11-11JavaScript前端開發(fā)時數(shù)值運(yùn)算的小技巧
這篇文章主要介紹了JavaScript前端開發(fā)時數(shù)值運(yùn)算的小技巧,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07原生js實(shí)現(xiàn)計(jì)算購物車總金額的示例
本文主要介紹了原生js實(shí)現(xiàn)計(jì)算購物車總金額的示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04