<< DataGridViewに透過色は設定できるのか | main | LINQを使って左外部結合を実現しようとしてみた >>

スポンサーサイト

一定期間更新がないため広告を表示しています

| | - | - | - |

正規表現で半角英数記号をチェックする

VB2008で半角チェックを行うことになりました。
パスワードやIDの入力チェックなどで、よく使われていますよね。
そこで、半角英数記号からなる文字列かどうかを正規表現でチェックすることにしました。

ところで『半角英数チェック』と日本語で書くのは簡単ですが、
すべての半角記号までもが含まれているのかどうかは、曖昧な場合が多いですね。
私のところでも、実は半角記号は含まれていると暗に意味されていました。

こういうところに、日本特有の曖昧表現を持ってこられるのは…、個人的には嫌です。

他人とこういうチェック問題を話す時は、出来るだけ正確な表現に努めましょう。
ですので、今回は「半角英数記号のチェック」を行う処理です(笑)


'半角かどうかのチェック
Private Function IsHankaku(ByVal strText As String) As Boolean

   If String.IsNullOrEmpty(strText) Then
     Return False
   End If

   Return Regex.IsMatch(strText, "^[a-zA-Z0-9!-/:-@¥[-`{-~]+$")

End Function


IsMatchメソッドは、第1引数がNothingだと例外エラーを起こします。
そのため、事前に Nothing か 空文字 であれば"False"で返すようにしています。
無いものはチェックしようが無いですから。

正規表現の "^[a-zA-Z0-9!-/:-@¥[-`{-~]+$" は、
ASCIIコード一覧表と照らし合わせるとよく分かるかと思います。
文字コード33〜126が対象であるということが、一目瞭然ですね。
そのため、 "^[¥x20-¥x7F]+$" も、同じ半角英数記号チェックとなります。

正規表現を作成するのが大変ですが、1行で書けると何だかちょっと嬉しくなりますね。


[DOBON.NET]正規表現の基本: .NET Tips: C#, VB.NET, Visual Studio
vslibrary @ wiki

| 23:01 | VB.NET | - | - |

スポンサーサイト

| 23:01 | - | - | - |