前置き (IsMatch関数について)
Power Apps では IsMatch関数を使うことで、指定した文字列が含まれているかどうかを判定する事ができますが、IsMatch 関数は、正規表現を指定する事もできたりします。
正規表現
正規表現は非常に奥深く、英数字判定からパターン判別まで様々な事ができます。
https://learn.microsoft.com/ja-jp/dotnet/standard/base-types/regular-expressions?WT.mc_id=DX-MVP-5003651
全角判定をするためには?
なのでまずは、入力文字列が全て全角のみかを判定すればいいのですが、全角の文字は数多くあるため、日本だけでも
- 全角ひらがな
- 全角カタカナ
- 全角記号
- 全角数字
- 全角大文字
- 全角小文字
- 全角漢字
と7種類もありますし、それ以外の言語も含めるととても範囲指定できなさそうです。
でも、よく考えてみてください。
全角を判定をすることは難しくても・・・半角のほうがまだ簡単そうではありませんか?
- 半角大文字
- 半角小文字
- 半角記号
- 半角数字
- 半角カナ
項目は複数ありますが、文字の数はそれほど多くなさそうです。
なので、入力文字中に半角文字があるか判定させ、その結果が偽(False)であれば、全角のみであると判断できます。
指定文字が全て半角かどうか判断する
とはいっても、それでも難しいので、ChatGPT に聞いてみました。
というわけなので、Power Apps に反映させてみます。
Power Apps
!(IsMatch(TextInputCanvas1.Value,"^[!-~。-゚]+$"))
正しく反映されてますね!
これで、全角のみであれば有効にできるというようなJapanライクなアプリもできるようになります!
ぜひお試しください!