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

為了賬號安全,請及時綁定郵箱和手機立即綁定

這么理解是否正確?

http://img1.sycdn.imooc.com//59404be100017ac613660736.jpg

已經在sublime上寫出來了

? 因為每次調用了exec方法 ?

只會返回該RegExp對象的當次的數據

我的例子中匹配了4次 ?看看我的解釋是否合理

例如第二種情況 ? 我在While語句的條件中調用了一次(1)

然后再在While語句中調用了第二次(2)賦給ret ?

于是ret只儲存第二次(偶數次)的內容

我打印出來就只有偶數次了 ?

第三種情況類似


只有老師的那種情況 ? 只在條件語句中調用一次 ? 然后賦給ret

于是ret就不會因為lastIndex的原因 ?跳過任何一次遍歷 ? 所有4次都成功

?就像sublime ?下面執行的一樣

正在回答

2 回答

正則表達式exec()函數:

exec() 方法用于檢索字符串中的正則表達式的匹配。
返回值是一個數組,但是此數組的內容和正則對象是否是全局匹配有著很大關系:

1.沒有g修飾符:
在非全局匹配模式下,此函數的作用和match()函數是一樣的,只能夠在字符串中匹配一次,如果沒有找到匹配的字符串,那么返回null,否則將返回一個數組,數組的第0個元素存儲的是匹配字符串,第1個元素存放的是第一個引用型分組(子表達式)匹配的字符串,第2個元素存放的是第二個引用型分組(子表達式)匹配的字符串,依次類推。同時此數組還包括兩個對象屬性,index屬性聲明的是匹配字符串的起始字符在要匹配的完整字符串中的位置,input屬性聲明的是對要匹配的完整字符串的引用。
特別說明:
在非全局匹配模式下,IE瀏覽器還會具有lastIndex屬性,不過這時是只讀的。

2.具有g修飾符:
在全局匹配模式下,此函數返回值同樣是一個數組,并且也只能夠在字符串中匹配一次。不過此時,此函數一般會和lastIndex屬性匹配使用,此函數會在lastIndex屬性指定的字符處開始檢索字符串,當exec()找到與表達式相匹配的字符串時,在匹配后,它將lastIndex 屬性設置為匹配字符串的最后一個字符的下一個位置。可以通過反復調用exec()函數遍歷字符串中的所有匹配,當exec()函數再也找不到匹配的文本時,它將返回null,并把lastIndex 屬性重置為0。
數組的內容結構和沒有g修飾符時完全相同。

特別說明:

如果在一個字符串中完成了一次模式匹配之后要開始檢索新的字符串,就必須手動地把lastIndex屬性重置為0。


0 回復 有任何疑惑可以回復我~

復習一下while。。。。第一次條件滿足時候賦值一次,等語句塊執行完,才執行的while內的條件,即第二次賦值,這時候第一次已經輸出了,不存在兩次什么的。。。。

1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
JavaScript正則表達式
  • 參與學習       96798    人
  • 解答問題       126    個

JavaScript正則表達式教程,理解之后,正則表達式比你想象的簡單

進入課程

這么理解是否正確?

我要回答 關注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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