PowerApps|正規表現でチェックを行う9つの例【コピペ可】

PowerAppsでも
正規表現を用いたチェックを行うことは可能です。

チェックを行いたい項目はいくつかあるかと思いますが、例えば以下のようなものが考えられます。

  1. メールアドレス
  2. 電話番号
  3. 郵便番号
  4. パスワードの強度
  5. 数値の範囲
  6. URLの形式
  7. 特定の文字列が含まれているか
  8. 英数字のみか
  9. 特定の文字数か

これらの項目のチェックを行いたい場合は、

以下でご紹介する正規表現をコピペして使ってくださいね。

【例1】メールアドレスのチェック

1番よくあるのは、「メールアドレス」のチェックですね。

If(
    !IsMatch(TextInput.Text, "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"),
    UpdateContext({ErrorMessage: "Invalid email format"}),
    UpdateContext({ErrorMessage: ""})
)

初めのIsMatch関数で、TextInputのテキストをチェックしています。

もし、メールアドレス形式ではないなら、

ErrorMessage内にエラー文が格納されます。

【例②】電話番号のチェック

次は電話番号のチェックです。

If(
    !IsMatch(TextInput.Text, "^\d{3}-\d{3}-\d{4}$"),
    UpdateContext({ErrorMessage: "Invalid phone number format (e.g., 123-456-7890)"}),
    UpdateContext({ErrorMessage: ""})
)

【例③】郵便番号のチェック

日本の郵便番号の

000-0000

の形式であるかどうかをチェックします。

If(
    !IsMatch(TextInput.Text, "^\d{3}-\d{4}$"),
    UpdateContext({ErrorMessage: "Invalid postal code format (e.g., 123-4567)"}),
    UpdateContext({ErrorMessage: ""})
)

【例④】パスワードの強度チェック

パスワードが
最低8文字で、少なくとも1つの大文字、1つの小文字、1つの数字、および1つの特殊文字を含むことを確認します。

If(
    !IsMatch(TextInput.Text, "^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$"),
    UpdateContext({ErrorMessage: "Password must be at least 8 characters long, and include at least one uppercase letter, one lowercase letter, one number, and one special character"}),
    UpdateContext({ErrorMessage: ""})
)

正規表現の中の()がそれぞれの条件を示しており、
これらの条件をなくしたり、8の数字を変えることで制限文字数を変えたりすることができます。

【例⑤】数値の範囲チェック

数値が特定の範囲内にあるかどうかをチェックします。

例では、1〜100の間にあることを想定しています。

If(
    !IsNumeric(TextInput6.Text) || Value(TextInput.Text) < 1 || Value(TextInput.Text) > 100,
    UpdateContext({ErrorMessage: "Please enter a number between 1 and 100"}),
    UpdateContext({ErrorMessage: ""})
)

【例⑥】URLの形式チェック

URLの形式をチェックします。

If(
    !IsMatch(TextInput.Text, "^(https?://)?(www\.)?[a-z0-9.-]+\.[a-z]{2,}(/.*)?$"),
    UpdateContext({ErrorMessage: "Invalid URL format (e.g., https://www.example.com)"}),
    UpdateContext({ErrorMessage: ""})
)

【例⑦】特定の文字列が含まれているかチェック

特定の文字列が含まれているかチェックします。

例では、「specificword」という文字列が含まれているかどうかをチェックしています。

If(
    !IsMatch(TextInput.Text, ".*specificword.*"),
    UpdateContext({ErrorMessage: "The input must contain the word 'specificword'"}),
    UpdateContext({ErrorMessage: ""})
)

【例⑧】入力が英数字のみかチェック

入力が英数字のみで入力されているかをチェックします。

If(
    !IsMatch(TextInput.Text, "^[a-zA-Z0-9]*$"),
    UpdateContext({ErrorMessage: "Please enter only alphanumeric characters"}),
    UpdateContext({ErrorMessage: ""})
)

【例⑨】入力が特定の文字数であるかをチェック

入力が特定の文字数であるかをチェックします。

例では、5文字かどうかをチェックしています。

If(
    Len(TextInput.Text) <> 5,
    UpdateContext({ErrorMessage: "Input must be exactly 5 characters long"}),
    UpdateContext({ErrorMessage: ""})
)

まとめ

今回は、いろいろなチェック方法について紹介していきました。

中には、正規表現だけではないものも含まれていました。

ぜひあなたのチェック動作に組み込んでみてもらえればと思います。

では、また。

(Visited 272 times, 1 visits today)