アプリ開発サークル勉強会⑬ 開催日時 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
電話番号
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を押すと→の画面に書いてある正規表現のパターンがマッチングしているかがわかる。
testメソッドで確認しなくて済むので便利です。