2022年1月3日 星期一

在 JavaScript 初探正規表達式

 在 JavaScript 初探正規表達式

前言

  雖然從很久以前就知道有正規表達式這樣的檢查字串手法,但因為我不常用到複雜的檢查字串規則,所以就一直能避就避的使用著它,最近剛好有空就用 JavaScript 來學習它,在此做個紀錄。


內容

  先看範例,如下

const reg = /ab*c/g;
let s = 'xxxabbc,xxxabc';
console.log( reg.test(s) );//true
console.log( s.match(reg) );//["abbc", "abc"]
console.log( s.replace(reg,'YYY') );//xxxYYY,xxxYYY


正規表達式用雙'/'來包住填入規則,但範例多了個'g'在字尾,這是'global search'的意思,待會會說明,範例的規則是a以後有0到多次的b,然後後有個c,這就是範例的規則,'ac'、'abc'、'abbc'...等都符合資格,接著可以透過 RegExp.test() 來檢查字串是否府合資格,RegExp 是 JavaScript 的正規表達式的類別,結果會回傳 true 或 false ,這個用法是最簡單的,接著第二個用法是透過 String.match()  來找到符合規則的字串,回傳的結果是個陣列,範例的結果有兩個,如果剛開始的規則裡沒有填寫字尾'g'的話,這裡的回傳結果就只會找一次,第三種用法是透過 String.replace() 來替代掉符合規則的文字,回傳的結果是一個字串,範例會將符合規則的字串都替換成'YYY'。


  這次初步的學習了正規表達式,正規表達式的填寫規則可以參考 [ developer.mozilla.org ] 正規表達式 裡面詳細的規則,除非很常使用正規表達式,不然應該很難把規則記下來,所以像我這種偶而用到的就用查的就可以了。


參考資料

[ developer.mozilla.org ] 正規表達式

沒有留言:

張貼留言