Regex.IsMatch 正規表現 郵便番号 メールアドレス

   


正規表現について書きます。
正規表現は難しくはありません。
簡単です。

今回はSystem.Text.RegularExpressions.Regex.IsMatchを使います。
テキストボックス1に郵便番号のチェックとして正規表現をやっていこうと思います。
テキストボックス2にメールアドレスのチェックとして正規表現をやっていこうと思います

まず郵便番号のパターンを考えてみます。
郵便番号は今は7桁です。

郵便番号の住所等データがほしい方は日本郵便のサイトで配布してます。

今回はやりません。

パターンは数字3桁-数字4桁桁ですね。
[0-9]で数字0から9までに対応できます。
桁数ですが3桁だと{3}でいいんです。
つまり4桁だと{4}です。
ということは[0-9]{3}[0-9]{4}ですね。
-がありません。
サイトによりますよね。
-入れなくていい画面あるし。
めんどくさいし。
簡単なので入れましょう。
なんとなくわかってる方もいると思いますが。
[0-9]{3}-[0-9]{4}
はい終わり簡単でしょ。

次はメールアドレスです。
パターンを考えましょう。
gmailだとhogehoge@gmail.comですよ。
英語ですね。
英語は[a-z]でオッケー。
数字も使ってたり最近は日本語ドメインもあるし。
今回は日本語ドメインは無視して数字と英語だけにしましょう。
日本語ドメインは変換しないといけない為これでよかったです。
[a-z0-9]
これで0-9とa-zはいけます。
この場合大文字は駄目です。
メールアドレスの場合大文字小文字が区別できますが
メールサーバーの設定として区別しないに設定されているらしいです。
大文字も書いときましょうか。
[a-zA-Z0-9]

サンプルソース
Public Class Form1

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

If System.Text.RegularExpressions.Regex.IsMatch( _
TextBox1.Text, "[0-9]{3}-[0-9]{4}") Then
MsgBox("郵便番号です")
Else
MsgBox("郵便番号ではありません")
End If
If System.Text.RegularExpressions.Regex.IsMatch( _
TextBox2.Text, "[a-zA-Z0-9]@{1}[a-zA-Z0-9].[a-zA-Z0-9]") Then
MsgBox("メールアドレスです")
Else
MsgBox("メールアドレスではありません")
End If

End Sub
End Class

メールアドレスは桁数も決まってないしドメインしだいで@から後ろ変わるし完璧には難しいですね。
文字列に@が一回.が@より後ろに書かれていて1回以上あるかですけど。
登録とかは確認メール送るとかそういう方法論もありますし。

ライブラリーもあるらしい。

ライブラリー

テキストボックスじゃあなくていいならMaskedTextBox使うのもありなのかな。
MaskedTextBox

PR



 - vb.netさんぷる , ,

Translate »