正規表示式是最常見的一個功能,不論是字串過濾、轉換、判斷相當實用。這篇使用JS方式使用,後續如果有空就會撰寫其他版本的寫法。
JS 正規表示式
使用工具
本篇使用方式是大家都可以使用的DevTools
,如果不知道這東西可以點開瀏覽器並按下F12。
第一次發現視窗太小,可以參考下方圖片。
開始使用
使用方式是需要選擇主控台即可,其餘的先暫時不理會。
初始化
初始化方式可使用下面兩種寫法,一種前後加入斜線就可以達成效果。
1 | let re = /Hello/; |
1 | let reg = new RegExp('Hello world in JavaScript'); |
text、exec、search 使用方式
text 測試字串是否有府和字串,回傳方式會是boolean。
以下測試可以使用 /i
:不區分大小寫,/g
:比對字串所有位置
1 | let re = /Hello/i; |
1 | let re = /Hello/g; |
exec 與test 不同於可以顯示比較詳細的內容,若不存在會以null方式呈現。
1 | let re = /Hello/i; |
1 | let re = /Hello/g; |
search 與 indexOf 相同,找尋字串中會去抓取第幾位個位置,主要是數值呈現。
1 | let str ='hello world in JavaScript'; |
特殊字元
特殊字元有很多種類可以使用看看效果,像是上一張標中有提到 ^
匹配輸入的開頭。
1 | let str ='hello world in JavaScript'; |
如果是 $
用法則會在結尾時取得。
1 | let str ='hello world in JavaScript'; |
有時候常常遇到需要用\b
使用這方式,可以參考下方。
1 | const regex = /./ // 比對換行符號外的任意一個字元 |
集合
這邊就會比較多人需要使用這段,原則上如果要判斷序號、數值就可以用這個來排除。
下方範例兩種寫法是都可以呈現A-Z效果。
1 | let regex = /[ABCDEFGHIJKLMNOPQRSTUVWXYZ]/ |
同樣數字也可以呈現,特別需求可以將數字跟英文字合併。
1 | let regex = /[0123456789]/ |
量詞 {}
量詞方式會由{}修飾 /\d\d\d\d\d/
可以變成 /\d{5}/
。
1 | // 使用 {5} 表示連續出現 5 次 |
1 | // 使用 ? 表示出現 0 或 1 次,等同於 {0,1} |
1 | // '+' 出現的次數越多優先 |
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 John Conte!
評論
DisqusGitalk