SharePointLリストからフォームでアプリを作る場合は入力確認がされますが、フォームでない場合などきちんとした形式で入力されているか確認したい時があるかと思います。その時に便利な関数IsMatch関数をまとめてみます。
Microsoftのホームページによりますと、以下のように書かれています。
IsMatch 関数は、通常文字、事前定義済みのパターン、または正規表現 が含まれたパターンにテキスト文字列が一致するかどうかをテストします。 Match および MatchAll 関数は、サブマッチを含め、一致したものを返します。
Text inputに入っているテキストが要望通りか確認することが可能です。
IsMatch(Text, Pattern [, Options ] )
Text(必須):検証したいテキスト
Pattern(必須): テキスト文字列としてテストするパターン
Option(任意):一部か全部か選択可能。デフォルトはMatchOptions.Complete(完全一致)
戻り値
true:パターンに一致した場合
false:パターンに一致しない場合
パターンは自分で任意のテキストを設定したり、あらかじめ定義されているパターンを使用したり、また正規表現として合っているか設定することが可能です。
TextInput1というテキスト入力に入っている文字が”Hello World”と入ってほしい場合、確認する場合は下記のように書きます。
IsMatch( TextInput1.Text, "Hello world" )
この場合は完全一致しているため、trueが返ってきます。
テキスト入力に”Hello”が入っているか(部分一致)確認する場合は、オプションにContainsを書きます。
IsMatch(TextInput1.Text,"hello",MatchOptions.Contains)
この場合、大文字と小文字の区別をしているため、”hello”が小文字のためfalseになります。
このままでもhelloが入っていると判定するためには、下記のように記載します。
IsMatch(TextInput1.Text,"hello",MatchOptions.Contains & MatchOptions.IgnoreCase )
上記のように記載すると大文字小文字の区別なくhelloが入っていると判断されtrueになります。
あらかじめ定義されたパターンを使用して簡単に確認可能です。
IsMatch(TextInput1.Text,Match.Email)
こちらの定義されたパターンを選択するとわかるのですが、あらかじめ定義された正規表現が設定されています。わざわざ自分で記入しなくてもあらかじめ設定されているもので、Emailアドレスかどうか判定してもらえます。
テキスト入力に入っているテキストが指示された日付入力のパターンか調べる方法は下記になります。
\dは1桁の数と一致します。(“0″~”9”) {}で桁数を表しています。
正規表現の詳しい説明は下記のMicrosoftのサイトに詳しく載っていますので、各自でお調べください。
参考 Power Apps での IsMatch、Match、および MatchAll 関数Microsoft Learn