最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳談lastIndex對正則結(jié)果的影響

 更新時間:2017年11月10日 08:48:58   投稿:jingxian  
下面小編就為大家?guī)硪黄斦刲astIndex對正則結(jié)果的影響。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

前言

今天遇到一個問題,用正則表達式去檢查同一個字符串時,交替返回true和false。無奈之下,重新翻了翻權(quán)威指南,發(fā)現(xiàn)罪魁禍?zhǔn)自瓉硎莑astIndex。可在控制臺嘗試下

let reg = /[\d]/g
//undefined
reg.test(1)
//true
reg.test(1)
//false

lastIndex

lastIndex在權(quán)威指南中是如下解釋:它是一個可讀/寫的整數(shù)。如果匹配模式帶有g(shù)修飾符,這個屬性存儲在整個字符串中下次索引的開始位置,這個屬性會被exec()和test()用到。還是上面的例子,觀察下lastIndex屬性

let reg = /[\d]/g  //有修飾符g
//undefined
reg.lastIndex
//0
reg.test(1)   
//true
reg.lastIndex  //匹配一次后,lastIndex改變
//1
reg.test(1)  //從index 1 開始匹配
//false
reg.lastIndex
//0
reg.test(1)
//true
reg.lastIndex
//1

第一次使用test()匹配成功后,lastIndex被設(shè)為匹配到的結(jié)束位置,就是1;第二次再test()時,從index 1 開始匹配,匹配失敗,lastIndex重置為0 。這樣就造成了匹配結(jié)果與預(yù)期不符

解決

1、不使用 g 修飾符

reg = /[\d]/
///[\d]/
reg.test(1)
//true
reg.test(1)
//true
reg.lastIndex
//0
reg.test(1)
//true
reg.lastIndex

2、test()之后手動設(shè)置lastIndex = 0

以上這篇詳談lastIndex對正則結(jié)果的影響就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

永修县| 鄯善县| 宣武区| 建湖县| 商丘市| 嘉定区| 镇平县| 高雄市| 吕梁市| 墨竹工卡县| 陆丰市| 普宁市| 克什克腾旗| 和田市| 湄潭县| 柘荣县| 阿鲁科尔沁旗| 永德县| 汝阳县| 平潭县| 宁武县| 定日县| 曲麻莱县| 泗洪县| 芜湖市| 遂川县| 元江| 长沙县| 安宁市| 禹城市| 中宁县| 阿拉善盟| 启东市| 扎囊县| 弥勒县| 德江县| 博乐市| 无棣县| 宣威市| 东阿县| 芒康县|