婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 淺析正則表達式中的lastIndex以及預查

淺析正則表達式中的lastIndex以及預查

熱門標簽:西藏智能外呼系統代理商 梅縣地圖標注 ai電話機器人搭建 甘肅醫療外呼系統排名 貴港公司如何申請400電話 地圖標注教學點 外呼系統無呼出路由是什么原因 呼叫系統外呼只能兩次 400電話辦理電話辦理

依次寫出下列輸出內容。

var reg1 = /a/;
var reg2 = /a/g;
console.log(reg1.test('abcabc')); // true
console.log(reg1.test('abcabc')); // true
console.log(reg1.test('abcabc')); // true
console.log(reg1.test('abcabc')); // true
console.log(reg2.test('abcabc')); // true
console.log(reg2.test('abcabc')); // true
console.log(reg2.test('abcabc')); // false
console.log(reg2.test('abcabc')); // true

很簡單的一個正則表達式測試,查找字符串abcabc中是否有字符a。但是結果卻有一個特殊false存在,Why?

lastIndex(針對于帶參數g的正則表達式)

在每個實例化的RegExp對象中,都存在一個lastIndex屬性,其初始值為0。

/a/.lastIndex // 0
new RegExp('a').lastIndex // 0
lastIndex表示匹配成功時候,匹配內容最后一個字符所在原字符串中的位置 + 1,也就是匹配內容的下一個字符的index(如果匹配內容在字符串的結尾,同樣返回原字符串中的位置 + 1,也就是字符串的length)。如果未帶參數g,lastIndex始終為0。
var reg = /ab/g;
reg.test('123abc');
console.log(reg.lastIndex) // 5
// 匹配內容在最后
var reg = /ab/g;
reg.test('123ab');
console.log(reg.lastIndex) // 5
// 不帶參數g
var reg = /ab/;
reg.test('123abc');
console.log(reg.lastIndex) // 0

而這個lastIndex也就是用該正則進行其他匹配操作的時候匹配開始的位置。而匹配失敗時重置lastIndex為0。

var reg = /ab/g;
// 初始值為0,從最開始匹配 匹配成功, lastIndex為4
console.log(reg.test('12ab34ab'), reg.lastIndex); // true 4
// 從第4位字符"3"開始匹配 匹配內容為第二個ab lastIndex 為 8
console.log(reg.test('12ab34ab'), reg.lastIndex); // true 8
// 從第8位 (字符長度為8,沒有第8位) 開始匹配 匹配不成功 重置lastIndex 為 0
console.log(reg.test('12ab34ab'), reg.lastIndex); // false 0
// 從頭匹配 同第一步
console.log(reg.test('12ab34ab'), reg.lastIndex); // true 4

看到這里題目也就解答完畢,接下來是擴展。

對于未重新聲明的reg容易犯錯的地方。

// 測試字符串str1 和 str2 是否都含有ab字符
var reg = /ab/g;
var str1 = '123ab';
var str2 = 'ab123';
console.log(reg.test(str1)); // true
console.log(reg.test(str2)); // false

很明顯這里因為lastIndex的原因導致判斷錯誤。這里可以修改reg不帶參數g或則重新聲明reg,當然也可以在第一次匹配后手動修改reg.lastIndex = 0。

預查

接著說預查,字面意思就是預備匹配查詢,也就是查詢匹配內容接下來的內容,但是只是預備查詢匹配,并不返回。

經常我們需要匹配到字符串中某些字符后面跟某些字符,但是我們不需要匹配結果中包含后面跟的字符,例如:

找出下面字符串中字符后面是2的所有字符。

var str = 'a1b2c22d31e4fg6h2';
'a1b2c22d31e4fg6h2'.match(/[a-z]2/g); // ["b2", "c2", "h2"]

這樣,雖然能匹配出字符串帶2的,但是數字2我們并不需要,這里只需要字符。而用預查:

'a1b2c22d31e4fg6h2'.match(/[a-z](?=2)/g); // ["b", "c", "h"]

可以看到完全滿足條件,但是預查和本文的主題lastIndex又有幾毛錢的關系呢?

我們用test來看看,至于為什么用test這里要說明一下,match是匹配所有,直到匹配不成功的時候結束匹配,而匹配不成功時,lastIndex就被重置為0了。

而exec和test是第一次匹配成功或者匹配失敗就返回,并不會接著往下匹配。

var reg1 = /[a-z](?=2)/g;
var reg2 = /[a-z]2/g;
var str = 'a1b2c22d31e4fg6h2';
console.log(reg1.test(str), reg1.lastIndex); // true 3
console.log(reg1.test(str), reg1.lastIndex); // true 5
console.log(reg1.test(str), reg1.lastIndex); // true 16
console.log(reg1.test(str), reg1.lastIndex); // false 0
console.log(reg2.test(str), reg2.lastIndex); // true 4
console.log(reg2.test(str), reg2.lastIndex); // true 6
console.log(reg2.test(str), reg2.lastIndex); // true 17
console.log(reg2.test(str), reg2.lastIndex); // false 0

看出問題沒有?預查的lastIndex不包含預查內容! 這里就可以用來簡化很多判斷了。

例如我們要匹配密碼必須有至少一個大寫字母,一個小寫字母,一個數字,并且長度至少6位而且只能是數字字母組合。

按照不會預查的情況會這樣去判斷:

/[a-z]/.test(pwd)  /[A-Z]/.test(pwd)  /\d/.test(pwd)  /^[a-zA-Z0-9]{6,}$/.test(pwd);

但是:

/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z0-9]{6,}$/.test(pwd)

分解出來看:

(?=.*[a-z]) 是否有小寫字母 但是是預查 匹配失敗返回false 成功lastIndex不變動,還是為0,同理理解兩外預查內容,最后就是6喂以上的字母數字組合匹配,但是前面都是預查,lastIndex始終未0,每次匹配都是從最開始匹配的,所以滿足要求。

以上所述是小編給大家介紹的淺析正則表達式中的lastIndex以及預查,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

您可能感興趣的文章:
  • JS中正則表達式要注意lastIndex屬性
  • js正則表達式之RegExp對象屬性lastIndex,lastMatch,lastParen,lastContext,rightContext屬性講解
  • Javascript lastIndex 正則表達式的一個疑惑
  • 淺析lastIndex對正則表達式結果的影響

標簽:湖州 泰安 常州 大興安嶺 本溪 哈密 涼山

巨人網絡通訊聲明:本文標題《淺析正則表達式中的lastIndex以及預查》,本文關鍵詞  淺析,正則,表達式,中的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《淺析正則表達式中的lastIndex以及預查》相關的同類信息!
  • 本頁收集關于淺析正則表達式中的lastIndex以及預查的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    午夜精品一区二区三区电影天堂| 亚洲精品乱码久久久久| 日韩一区和二区| 日日嗨av一区二区三区四区| 欧美在线不卡视频| 午夜视频一区在线观看| 884aa四虎影成人精品一区| 蜜桃视频第一区免费观看| 欧美成人国产一区二区| 国产一区999| 国产精品美女视频| 91福利区一区二区三区| 性做久久久久久久久| 日韩视频一区二区| 成人性视频网站| 亚洲精品国产精品乱码不99| 欧美精品成人一区二区三区四区| 婷婷综合在线观看| 26uuu欧美| av一区二区三区| 亚洲第一主播视频| 欧美一区二区精品在线| 成人h动漫精品一区二区| 亚洲精品免费视频| 精品国产乱码久久久久久久| 91免费看视频| 美女一区二区视频| 亚洲欧洲精品一区二区三区| 欧美色图片你懂的| 狠狠色丁香久久婷婷综合_中| 国产精品国模大尺度视频| 欧美精品日韩综合在线| 国产成人精品免费在线| 午夜av电影一区| 欧美国产一区二区| 日韩视频免费观看高清完整版在线观看 | 欧美大片日本大片免费观看| 国产一区激情在线| 亚洲第一搞黄网站| 综合久久久久综合| 国产精品天美传媒沈樵| 日韩欧美一区电影| 欧美网站一区二区| 91社区在线播放| 国产精品一级片在线观看| 午夜欧美电影在线观看| 亚洲黄色免费网站| 有码一区二区三区| 久久久久国产精品厨房| 欧美日韩亚洲丝袜制服| 91麻豆国产在线观看| 国产成人av电影| 精品一区二区三区免费毛片爱| 亚洲mv大片欧洲mv大片精品| 日韩美女精品在线| 国产精品国模大尺度视频| 国产婷婷色一区二区三区四区| 欧美成人aa大片| 精品蜜桃在线看| 久久蜜桃一区二区| 国产亚洲精品bt天堂精选| 久久综合久久综合久久| 久久综合久久久久88| 久久免费视频一区| 久久一夜天堂av一区二区三区 | 亚洲天堂福利av| 中文字幕一区二区三中文字幕| 国产亚洲精品aa| 久久精品欧美一区二区三区麻豆| 欧美精品一区二区高清在线观看| 久久亚洲一区二区三区明星换脸 | 67194成人在线观看| 欧美挠脚心视频网站| 在线观看日韩高清av| 欧美亚洲综合在线| 欧美日韩mp4| 91精品国产综合久久香蕉的特点| 日韩欧美一级精品久久| 欧美mv日韩mv| 中文无字幕一区二区三区| 亚洲欧美日韩综合aⅴ视频| 亚洲精品少妇30p| 日本少妇一区二区| 国产一区二区三区视频在线播放| 国产精品一区二区久激情瑜伽| 精品在线你懂的| 丁香婷婷综合色啪| 色欧美片视频在线观看在线视频| 欧美色综合天天久久综合精品| 欧美tk—视频vk| 国产亚洲欧美激情| 一区二区三区四区不卡在线 | 久久九九全国免费| 国产亚洲欧洲997久久综合| 综合在线观看色| 日韩精品免费专区| 国产自产v一区二区三区c| 国产精品99久久久久久有的能看 | 亚洲成人av一区二区三区| 一区二区三区国产| 欧美aa在线视频| 99在线精品免费| 欧美丰满少妇xxxxx高潮对白| 欧美大片顶级少妇| 国产精品欧美一级免费| 一区二区三区国产| 国产伦精一区二区三区| 色综合色狠狠天天综合色| 日韩欧美视频一区| 亚洲视频一区二区在线| 国产麻豆精品一区二区| 欧美嫩在线观看| 亚洲精品高清在线观看| 国产精品一卡二| 精品国产免费人成电影在线观看四季 | 日韩欧美国产麻豆| 国产精品女同一区二区三区| 五月天国产精品| 风间由美一区二区av101| 欧美精品1区2区| 亚洲人成精品久久久久| 丰满亚洲少妇av| 欧美精选午夜久久久乱码6080| 久久久精品tv| 午夜精品视频在线观看| 一本久久a久久精品亚洲| 国产精品毛片久久久久久| 亚洲国产综合在线| 91激情五月电影| 亚洲色图.com| 94-欧美-setu| 亚洲欧洲av一区二区三区久久| 丁香六月综合激情| 国产精品免费视频网站| 国产99久久久精品| 国产精品美女视频| www.欧美日韩| 一区二区三区四区在线免费观看| 波多野结衣中文一区| 国产精品毛片无遮挡高清| 成人高清视频在线观看| 日韩伦理电影网| 欧美午夜精品一区二区三区| 亚洲一二三四区不卡| 在线不卡欧美精品一区二区三区| 亚洲sss视频在线视频| 欧美一级理论片| 久久9热精品视频| 国产亚洲欧美色| 91亚洲精品乱码久久久久久蜜桃| 亚洲精品欧美专区| 欧美一区中文字幕| 国产一区二区三区精品欧美日韩一区二区三区 | 国产精品一区在线观看乱码 | 久久午夜电影网| 成人精品免费看| 一区二区三区国产| 日韩一卡二卡三卡| 国产精品99久久久久久久vr| 国产精品国产三级国产普通话蜜臀| av午夜一区麻豆| 午夜精品视频在线观看| 精品乱人伦小说| 99re热视频这里只精品| 亚洲成人一区在线| 久久久久久久久蜜桃| 日本韩国一区二区三区| 久久国产精品无码网站| 国产天堂亚洲国产碰碰| 欧美色老头old∨ideo| 国产精品一级黄| 一区二区三区波多野结衣在线观看| 日韩精品一区二区三区蜜臀| 成人精品小蝌蚪| 另类的小说在线视频另类成人小视频在线 | 国产精品国产三级国产a| 欧美色老头old∨ideo| 国产成人8x视频一区二区| 亚洲一区二区三区中文字幕| 欧美成人精品福利| 日本乱人伦一区| 国产一区二区剧情av在线| 亚洲午夜久久久久久久久电影网| 国产亚洲一区二区在线观看| 在线观看国产日韩| 国产成人高清在线| 久久97超碰国产精品超碰| 亚洲精品中文在线影院| 久久无码av三级| 制服丝袜亚洲网站| 日本高清成人免费播放| 国产精品资源站在线| 日本美女一区二区三区| 一区二区在线看| 欧美国产成人精品| 久久综合久久综合久久| 日韩女优制服丝袜电影| 欧美日韩国产高清一区| 99精品欧美一区二区三区综合在线| 国产美女在线精品|