亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > regex > 正文

正確使用帶有"g"標記的javascript正則表達式

2020-01-20 22:22:17
字體:
來源:轉載
供稿:網友
下面我們要談談帶有"g" 標記的正則表達式的使用問題,首先讓我們看一段代碼,從例子入手更容易理解。
復制代碼 代碼如下:

1 function a(val)
2 {
3 var re = /^/d+$/g;
4 alert(re.lastIndex);
5 return re.test(val);
6 }
7 alert(a(5));
8 alert(a(6));

運行上述代碼,在不同瀏覽器中會得到不同結果,IE中:0 true 0 true,FF和Chrome中:0 true 1 false,看到這里,想必會有人一頭霧水,感到詫異。針對這個問題,就我目前查閱資料,找到了兩種方法。

1、使用match

復制代碼 代碼如下:

1 function a(val)

2
3 {
4
5 var re = /^/d+$/g;
6
7 if((""+val).match(re))
8
9 return true;
10
11 else
12
13 return false;
14
15 }
16
17 alert(a(5));
18
19 alert(a(6));

注:要使用""+val把val轉化為字符串,關于match的具體使用方法可參考這里

2、使用不帶"g" 的正則表達式(var re=/^/d+$/或var re=new RegExp("^[0-9]+$"))


復制代碼 代碼如下:

1 function a(val)
2
3 {
4
5 var re = new RegExp("^[0-9]+$");//或者var re=/^/d+$/;
6
7 return re.test(val);
8
9 }
10
11 alert(a(5));
12
13 alert(a(6));
14
15


注:var re = new RegExp("^[0-9]+$")中只能用[0-9],不能用/d,至于為什么,我不很明白,希望哪位知道的給講講。

不難看出,上面兩種方法是從側面考慮怎么解決問題 的,沒有從正面解決,接下來我們從問題出現的本質上分析一下,并給出解決方法。

要從問題出現的本質考慮,我們就不得不從"g" 標記說起,帶有"g"標記的正則表達式有一個屬性lastIndex,該屬性存放一個整數,它聲明的是上一次匹配文本之后的第一個字符的位置。上次匹配的結果是由方法 RegExp.exec() 和 RegExp.test() 找到的,它們都以 lastIndex 屬性所指的位置作為下次檢索的起始點。這樣,就可以通過反復調用這兩個方法來遍歷一個字符串中的所有匹配文本。該屬性是可讀可寫的。只要目標字符串的下一次搜索開始,就可以對它進行設置。當方法 exec() 或 test() 再也找不到可以匹配的文本時,它們會自動把 lastIndex 屬性重置為 0??吹竭@里我們不難看出問題出現的原因和解決方法了,只要我們在下次搜索之前把lastIndex屬性重置為0即可,如下:


復制代碼 代碼如下:

1 function a(val)
2
3 {
4
5 var re = /^/d+$/g;
6
7 re.lastIndex=0;//重置lastIndex為0
8
9 return re.test(val);
10
11 }
12
13 alert(a(5));
14
15 alert(a(6));


關于lastIndex的更多解釋請看這里

至此我們已經明白問題出現的本質,以及如何較好的解決這樣的問題,希望本文對一些人有幫助。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品美女在线观看播放| 国产成人高潮免费观看精品| 欧美日韩一区二区免费视频| 欧美成人h版在线观看| 欧美激情国产日韩精品一区18| 一本色道久久综合狠狠躁篇怎么玩| 国产啪精品视频网站| 国产成人+综合亚洲+天堂| 中文字幕一精品亚洲无线一区| 亚洲一区二区国产| 成人性生交大片免费观看嘿嘿视频| 久久偷看各类女兵18女厕嘘嘘| 国模精品视频一区二区| 爽爽爽爽爽爽爽成人免费观看| 亚洲人午夜色婷婷| 国产精品三级久久久久久电影| y97精品国产97久久久久久| 欧美大片网站在线观看| 国产91对白在线播放| 欧美日韩成人精品| 亚洲精品xxxx| 欧美黄网免费在线观看| 国产精品美女久久久久av超清| 国内精品模特av私拍在线观看| 欧美极品第一页| 欧美亚洲免费电影| 亚洲美女视频网| 欧美精品videossex性护士| 国产精品日本精品| 日韩在线观看免费网站| 国产精品一区二区三区毛片淫片| 国产在线拍揄自揄视频不卡99| 亚洲人高潮女人毛茸茸| 国产美女久久精品香蕉69| 欧美激情第1页| 在线播放精品一区二区三区| 欧美高清自拍一区| 国产女人18毛片水18精品| 伊是香蕉大人久久| 久热爱精品视频线路一| 久久精品成人欧美大片| 国产精品999999| 欧美国产日韩二区| 91大神在线播放精品| 91欧美精品午夜性色福利在线| 日韩免费观看在线观看| 一区二区三区视频观看| 国产欧美一区二区三区在线看| 欧美激情综合色综合啪啪五月| 精品亚洲国产成av人片传媒| 国产精品嫩草影院一区二区| 热久久免费国产视频| 成人亚洲欧美一区二区三区| 日韩暖暖在线视频| 啪一啪鲁一鲁2019在线视频| 成人网欧美在线视频| 国产亚洲免费的视频看| 色天天综合狠狠色| 2025国产精品视频| 美女少妇精品视频| 亚洲男人天堂久| 日韩电影中文字幕在线观看| 91成品人片a无限观看| 亚洲精品97久久| 欧美成人精品一区二区| 亚州欧美日韩中文视频| 国产精品草莓在线免费观看| 91成人福利在线| 亚洲深夜福利视频| 国产精品久久久久77777| 日本最新高清不卡中文字幕| 亚洲国产又黄又爽女人高潮的| 久久久久久久久爱| 欧美老少配视频| 欧美电影免费观看电视剧大全| 欧美极品少妇xxxxx| 超碰日本道色综合久久综合| 日韩精品在线免费观看视频| 2019av中文字幕| 日韩色av导航| 2019av中文字幕| 欧美人与物videos| 动漫精品一区二区| 国产99久久精品一区二区永久免费| 欧美另类在线观看| 亚洲图片制服诱惑| 亚洲一区二区久久久久久久| 国产成人av网| 欧美在线视频在线播放完整版免费观看| 日韩精品在线观看网站| 欧美一级电影在线| 伊人亚洲福利一区二区三区| 欧美亚洲在线观看| 91人成网站www| 亚洲大胆人体视频| 亚洲欧洲在线看| 欧美性生交xxxxxdddd| 久久精品99久久香蕉国产色戒| 国产精品99久久久久久人| 日韩精品免费在线观看| 国产精品视频永久免费播放| 久久久午夜视频| 最近2019免费中文字幕视频三| 成人疯狂猛交xxx| 欧美日韩在线视频首页| 国产日韩综合一区二区性色av| 国产一区二区视频在线观看| 国内精品中文字幕| 亚洲欧美日本精品| 日韩精品免费在线观看| 久久成人18免费网站| 2019中文字幕在线| 午夜精品久久久久久久白皮肤| 亚洲香蕉成人av网站在线观看| 日日狠狠久久偷偷四色综合免费| 国产日韩精品一区二区| 秋霞成人午夜鲁丝一区二区三区| 国产亚洲成av人片在线观看桃| 亚洲国产精品人人爽夜夜爽| 欧美美女操人视频| 亚洲视频在线观看视频| 一区二区成人av| 久久久精品免费| 97在线视频免费观看| 欧美精品一区二区免费| 亚洲精品国产suv| 91精品久久久久久久久| 538国产精品视频一区二区| 欧美日韩精品二区| 亚洲精品欧美一区二区三区| 91久久国产精品91久久性色| 欧美在线中文字幕| 亚洲视频电影图片偷拍一区| 麻豆国产va免费精品高清在线| 久久久国产视频91| 亚洲精品一区久久久久久| 自拍偷拍亚洲欧美| 国产日本欧美一区二区三区在线| 国产在线观看不卡| 日韩高清中文字幕| 欧美高清不卡在线| 97久久精品人搡人人玩| 久久影视电视剧凤归四时歌| 久久伊人色综合| 性色av一区二区三区在线观看| 欧美极品少妇xxxxⅹ裸体艺术| 国产做受高潮69| 亚洲xxxx视频| 欧美亚洲在线视频| 国产精品久久久久久久app| 欧美性视频网站| 精品久久香蕉国产线看观看亚洲| 国产亚洲视频在线观看| 欧美激情亚洲视频| 欧美日韩中文字幕在线视频| 国产精品人人做人人爽| 国产精品亚洲一区二区三区| 欧美日韩高清区| 欧美极品在线播放| 日本高清久久天堂| 麻豆国产精品va在线观看不卡| 亚洲二区在线播放视频| 久久久www成人免费精品| 91免费国产视频|