[ JavaScript ] Regular Expression 之 Global Flag 運用

Contents

  • 組成元件
  • Global Flag 簡介
  • Global Flag - lastIndex 未手動設定
  • Global Flag - lastIndex 手動設定

組成元件

  • 目標字串
    • 要被搜尋的字串
  • 搜尋的關鍵字
    • 從目標字串中找出是否存在所要的關鍵字
    • JavaScript 使用方式
    • new RegExp( pattern [ , flags ] )
      • pattern 代表搜尋的關鍵字
      • flags 的部份可有可無
      • 種類
        • g 全域搜尋
        • i 不區分大小寫
        • m 多行搜尋
        • y 從指定的位置開始搜尋
  • 例如
    • 目標字串
      • The latest airplane designs evolved from slabcraft
    • 搜尋的關鍵字
      • airplane
    • 說明
      • The latest airplane designs evolved from slabcraft 的目標字串中找是否存在 airplane 的關鍵字

Global Flag 簡介

  • g 的用意是能從目標字串中找出符合的關鍵字 ( pattern ),當使用 exectest 的時候,會改變 lastIndex 的位址以供下次搜尋時,可以從上次搜尋過的地方接續搜尋
  • 亦即是當目標字串中找到第一個符合關鍵字 ( pattern ) 後要再搜尋下一個符合關鍵字 ( pattern ) 的部份時,會接續從前一個搜尋到的位址之後來進行搜尋,當整個目標字串搜尋完後才會再從開頭處進行搜尋,其中紀錄位址的參數為 lastIndex
  • 當尋搜到符合關鍵字 ( pattern ) 後要再從頭開始搜尋時,請先把 lastIndex 設為 0

Global Flag - lastIndex 未手動設定

  • 【 說明 】
    • lastIndex 未手動設定
  • 【 目標字串索引 】
 目標字串    hello world 123 hello world 123 hello world 123
 索引的十位數        1111111111222222222233333333334444444
 索引的個位數  01234567890123456789012345678901234567890123456
  • 【 JavaScript 程式 】

  • 【 Console 】
 1: true, lastIndex: 11
 2: true, lastIndex: 27
 3: true, lastIndex: 43
 4: false, lastIndex: 0
 5: true, lastIndex: 11
 6: true, lastIndex: 27
 7: true, lastIndex: 43
  • 【 說明 】
 ① 一開始從頭開始搜尋關鍵字,當搜尋到關鍵字時,則顯示 true 並顯示最後索引的位置
 ② 再搜尋下個關鍵字時,則從上個最後索引位置開始搜尋
 ③ 當目標字串搜尋完後需要在搜尋關鍵字時,則顯示 false 並顯示最後索引的位置為 0
 ④ 下次搜尋時則從開頭處開始搜尋

Global Flag - lastIndex 手動設定

  • 【 說明 】
    • lastIndex 手動設定
  • 【 目標字串索引 】
 目標字串    hello world 123 hello world 123 hello world 123
 索引的十位數        1111111111222222222233333333334444444
 索引的個位數  01234567890123456789012345678901234567890123456
  • 【 JavaScript 程式 】

  • 【 Console 】
 1: true, lastIndex: 11
 2: true, lastIndex: 11
 3: true, lastIndex: 27
 4: true, lastIndex: 43
 5: false, lastIndex: 0
 6: true, lastIndex: 11
 7: true, lastIndex: 27
  • 【 說明 】
 ① 一開始從頭開始搜尋關鍵字,當搜尋到關鍵字時,則顯示 true 並顯示最後索引的位置
 ② 手動設定 lastIndex 為 0,代表要求從頭開始搜尋 ( 第 5 行處 )
 ③ 搜尋下個關鍵字時,則從開頭索引位置開始搜尋
 ④ 當目標字串搜尋完後需要在搜尋關鍵字時,則顯示 false 並顯示最後索引的位置為 0
 ⑤ 下次搜尋時則從開頭處開始搜尋
Reference
GitHub
List of blogs
ALL RIGHTS RESERVED. COPYRIGHT © 2018. Designed and Coded by Makee.io