Power Appsで電話番号や郵便番号の入力値を簡単にでいいのでチェックしたい!みたいな質問をいただいたので、IsMatch関数を使用して簡単な入力値チェックを作ってみた。
※今回作成した正規表現は短時間で作ったものであり、電話番号や郵便番号の例外パターンを加味しておらず十分なテストも実施していません。
アプリなどに組み込む場合はより厳密な正規表現を紹介しているサイトを参考にしてください。
IsMatch関数
IsMatch関数は指定したテキスト文字列が、指定した形式に一致しているか確認できる関数。
その形式の指定に「正規表現」が使用できるのがすごく便利!
ただしSPOリストやDataverseに対しての委任はサポートされていないので、基本的にアプリ内のチェックに使用することになる。
郵便番号をチェック
ハイフンあり
IsMatch(TextInput1.Text,"\d{3}-\d{4}",MatchOptions.Complete)




ハイフンなし
IsMatch(TextInput1.Text,"\d{7}",MatchOptions.Complete)


電話番号をチェック
IsMatch(TextInput1.Text,"0(\d{1}-\d{4}|\d{2}-\d{3}|\d{3}-\d{2}|\d{4}-\d{1})-\d{4}",MatchOptions.Complete)



ハイフンなしは単純なので省略。
携帯番号をチェック
IsMatch(TextInput1.Text,"0[5789]0-\d{4}-\d{4}",MatchOptions.Complete)


フォームとかに組み込むイメージ



みたいな感じになるかと。
注意事項
冒頭にも記載しましたが、今回作成した正規表現は短時間で作ったものであり、電話番号や郵便番号の例外パターンを加味しておらず十分なテストも実施していません。
そこで厳格なアプリに導入する場合は「~ 正規表現」みたいに検索して、きちんとした正規表現を記載しているサイト様を参考にしてください。
また今回のチェックでは郵便番号や電話番号が「実在」するか?はチェックできません。
おまけ:^や$について
正規表現でバリデーションを行う際は先頭に「^」末尾に「$」を入れなければいけないんだけど、IsMatch関数は第3引数に「MatchOptions.Complete」を指定してあげると、自動で^と$を正規表現に追加してくれる。
ちなみに「MatchOptions.Complete」はIsMatchの規定値なので、指定する必要もなかったり。

コメント