亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

正則表達式test方法的疑問

正則表達式test方法的疑問

MM們 2019-02-12 12:27:04
var exg = /\d/g;result = exg.test("3");console.log(result);我打印這個結果發現奇數次是true,偶數次是false
查看完整描述

1 回答

?
函數式編程

TA貢獻1807條經驗 獲得超9個贊

g(global)搞的鬼。去掉 g 就可以了。

var exp = /\d/;

如果你想知道為什么,那么繼續。

如果正則表達式使用 g 標注,那么它表示全局檢索,并且會添加一個屬性 lastIndex 到表達式對象,表示下一次檢索的開始位置,數據類型為整型,初始值為 0,可讀可寫

相關規則如下:

  1. test 從待檢測字符串的 lastIndex 位置開始檢索。如果匹配成功,則 lastIndex 更新為匹配到子字符串的起始位置。如果匹配失敗,更新為 0。

  2. 如果 lastIndex 大于字符串長度,則 test 始終失敗。(這條沒什么用)

因為第一次 test 成功后 lastIndex 更新為 1,所以第二次 test 失敗,然后 lastIndex 重置為 0, 第三次成功, 第四次失敗。子子孫孫無窮盡。

完。


查看完整回答
反對 回復 2019-02-13
  • 1 回答
  • 0 關注
  • 415 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號