Power AutomatePower Platform

【Power Automate】正規表現を使った入力バリデーション|アダプティブカード

今回の記事では、正規表現を使った入力バリデーションを実現する方法をお伝えしていきます。

フロー内で正規表現を利用しようとすると複雑になりがちですが (解説記事はこちら) 、アダプティブカード入力時のバリデーション機能を使うことでシンプルに実装することができます。

よく使うバリデーションパターンも一覧でまとめていますので、ぜひコピペしてご活用ください。

スポンサーリンク

完成イメージ

Teamsに届いたアダプティブカードに不適切なメールアドレスを入力して送信しようとすると、
エラーメッセージが表示されて送信できないように制御してくれます。

アダプティブカード入力前
アダプティブカードが届く
アダプティブカード入力後
メールアドレスではない文字列を入力して送信しようとすると、エラーメッセージが表示される
スポンサーリンク

サンプルフローの作成

フロー全体像

フロー全体図

トリガー設定

今回は手動トリガー、名前は任意ですが「正規表現バリデーションサンプル」としました。

トリガー設定

アダプティブカード送信アクションの設定

Teamsコネクタの「アダプティブ カードを投稿して応答を待機する」アクションを追加します。

アダプティブカード送信アクション追加

投稿者・投稿先・Recipientは任意で構いませんが、今回は以下のように設定しました。

アダプティブカード送信アクション設定

Messageには、以下のアダプティブカードJSONを入力します。

{
  "type": "AdaptiveCard",
  "version": "1.3",
  "body": [
    {
      "type": "TextBlock",
      "text": "入力フォーム",
      "size": "large",
      "weight": "bolder"
    },
    {
      "type": "Input.Text",
      "id": "メールアドレス",
      "label": "メールアドレス",
      "placeholder": "例)sample@example.com",
      "regex": "^[\\w.-]+@[\\w.-]+\\.[a-zA-Z]{2,}$",
      "errorMessage": "正しいメールアドレスの形式で入力してください",
      "isRequired": true
    }
  ],
  "actions": [
    {
      "type": "Action.Submit",
      "title": "送信"
    }
  ],
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json"
}
メッセージの入力

特に以下の部分が正規表現に関わる部分です。
3章のよく使う正規表現パターンを参考に、変更しながら動きを確認すると理解が深まります。

正規表現部分
regexの後に続くのが正規表現、errorMessageの後に続くのがエラーメッセージ

作成アクションの設定

ユーザーがアダプティブカードに入力した内容は、その後のアクション内で動的なコンテンツとして利用できます。
今回は作成アクションを配置して、その中に動的なコンテンツを追加しました。

動的なコンテンツの利用
アダプティブカードのidプロパティに設定した値(今回の場合は「メールアドレス」)が動的なコンテンツ内に表示される
スポンサーリンク

よく使う正規表現パターン

よく使いそうな正規表現のパターンを以下にまとめました。
あくまで例のため、ご自身でチェックしてからご利用ください(アダプティブカードのregex部分に入力してください)。

許可する値正規表現エラーメッセージ
英数字のみ^[a-zA-Z0-9]+$半角英数字のみ入力してください
整数のみ^\\d+$半角数字のみで入力してください
数値 (小数点対応)^\\d+(\\.\\d+)?$数値形式で入力してください
日付 (YYYY/MM/DD)^\\d{4}/\\d{2}/\\d{2}$YYYY/MM/DD形式で入力してください
メールアドレス^[\\w.-]+@[\\w.-]+\\.[a-zA-Z]{2,}$正しいメールアドレスを入力してください
郵便番号^\\d{3}-?\\d{4}$郵便番号形式(123-4567)で入力してください
スポンサーリンク

注意事項

利用にあたっていくつか注意事項があるため記載します。

regex プロパティは Input.Text のみ対応

regex プロパティが使えるのは Input.Text (文字列型) に限られます。Input.Number (数値型) など他の入力タイプには使用できませんのでご注意ください。

クライアント側のバリデーションである点に注意

アダプティブカードのバリデーションはあくまでもカード送信前のクライアント側での検証です。
フロー側(サーバー側)での検証ではないため、厳密な制御が必要な場合はフロー側でも合わせてチェックすることをおすすめします。

Teamsのバージョンによって挙動が異なる場合がある

TeamsアプリのバージョンやOSによっては、バリデーションの挙動が異なる場合があります。実装後は実際のTeams環境での動作確認を行うようにしてください。

スポンサーリンク

まとめ

今回の記事では、アダプティブカードの正規表現バリデーション機能についてお伝えしました。
Power Automate内では正規表現を扱いづらいため、アダプティブカードのバリデーション機能を使うことでシンプルに実装してみてください。

また、Power Automate内で正規表現に一致するかを確認したい場合は、以下の記事も参考になります。

この記事は役に立ちましたか?

役に立った!
役に立たなかった...
フィードバックありがとうございました
スポンサーリンク
Hiromaru

普段からPower Platform・SharePointの技術を広めています!
デザインに力を入れて、見やすい・分かりやすい記事を投稿していきます

Hiromaruをフォローする
シェアする
Hiromaruをフォローする
タイトルとURLをコピーしました