プログラミングBlog

アプリ開発サークル勉強会⑬ 開催日時 2021年3月27日(土) 7:00-8:00

本日もこちらの問題やりました!

Q52-53 https://gist.github.com/kenmori/1961ce0140dc3307a0e641c8dde6701d

正規表現

プログラミングにおいては正規表現を用いたパターンマッチングのことを正規表現と言う。
パターンマッチングとは、データを検索した場合に、特定のパターンが出現するかどうか?またどこに出現するかを特定する方法である。
ja.wikipedia.org

2種類の方法

①値が変化しない場合

var str = /abc/;

正規表現が一定のままの場合、この方法を使うとよいパフォーマンスが得られます。

②値が変化する場合

var tel = new RegExp('abc'); 

正規表現パターンが変わることがわかっている場合や、パターンがわからない場合、ユーザーが入力するなど別のソースからパターンを取得する場合は、コンストラクタ関数を使用してください。 MDN

developer.mozilla.org

電話番号

0-9の3桁 + ハイフン + 0-9の4桁 + 0-9の4桁

var tel = /[0-9]{3}-[0-9]{4}-[0-9]{4}/;

ただしこの形だと部分一致となるため「0000-1111-1111」このように最初を4桁にしてもマッチングしてしまいます。
なので完全一致にする場合は先頭に「^」末尾に「$」をつけてあげる。

修正版
var tel = /^[0-9]{3}-[0-9]{4}-[0-9]{4}$/;

vscode拡張機能

Ctrl + Alt + Mで起動
TestRegexを押すと→の画面に書いてある正規表現のパターンがマッチングしているかがわかる。
f:id:Tokuty:20210330214021p:plain
testメソッドで確認しなくて済むので便利です。

marketplace.visualstudio.com