C#にてGUIアプリケーションを作成するときに使用する
TextBox などで入力文字の制限をする場合に使用する。特定文(整数値、実数値、金額、住所)に含まれる文字かを判断する方法を説明します。
特定文に含まれる文字かを判断
// 半角数字か判断する static public bool IsHalfNumeric(char c) { if (c >= '0' && c <= '9') { return true; } return false; } // 半角整数値か判断する static public bool IsHalfDigit(char c) { if ((c >= '0' && c <= '9') || c == '-' || c == '+') { return true; } return false; } // 半角実数値か判断する static public bool IsHalfReal(char c) { if ((c >= '0' && c <= '9') || c == '-' || c == '+' || c == '.') { return true; } return false; } // 半角16進数か判断する static public bool IsHalfHex(char c) { if ((c >= '0' && c <= '9') || (c >= 'A' && c <= 'F') || (c >= 'a' && c <= 'f')) { return true; } return false; } // 半角英文字か判断する static public bool IsHalfAlpha(char c) { if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')) { return true; } return false; } // 半角英数字か判断する static public bool IsHalfAlnum(char c) { if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || (c >= '0' && c <= '9')) { return true; } return false; } // 半角カナ文字か判断する static public bool IsHalfKana(char c) { if (c >= 'ア' && c <= 'ン') { return true; } return false; } // 半角表示文字か判断する static public bool IsHalfDisplay(char c) { if ((c >= ' ' && c <= '~') || (c >= '。' && c <= '゚')) { return true; } return false; } // 半角日付文字か判断する static public bool IsHalfDate(char c) { if ((c >= '0' && c <= '9') || c == '/') { return true; } return false; } // 半角時間文字か判断する static public bool IsHalfTime(char c) { if ((c >= '0' && c <= '9') || c == ':') { return true; } return false; } // 半角電話番号文字か判断する static public bool IsHalfPhone(char c) { if ((c >= '0' && c <= '9') || c == '-') { return true; } return false; } // 半角郵便番号文字か判断する static public bool IsHalfPost(char c) { if ((c >= '0' && c <= '9') || c == '-') { return true; } return false; } // 全角カナ文字か判断する static public bool IsDblKatakana(char c) { Regex regex = new Regex("^[ァ-ヴ!ー]+$"); if (!regex.IsMatch(c.ToString())) { return false; } return true; } // 全角かな文字か判断する static public bool IsDblHiragana(char c) { Regex regex = new Regex("^[ぁ-ん!ー]+$"); if (!regex.IsMatch(c.ToString())) { return false; } return true; }
単純なものはif文にて行なえますが、複雑になるとif文ではプログラムが複雑になります。
そこで上記の例では、正規表現にて行っています。
全て正規表現にて行なうことも出来ます。速度など考慮の上ご自分で判断してください。