Tác giả: Sưu tầm
Cấp độ bài viết: Chưa đánh giá
Tóm tắt:
Code: Select all
- Private Function IsDNSMailAddr(ByVal addr As String) As Boolean
- 'khai báo một số biến cần dùng
- Dim len As Integer
- Dim i As Integer
- Dim addarr() As Char
- Dim ch As Char
- 'giả định kết quả sai
- IsDNSMailAddr = False
- 'tìm độ dài chuỗi
- len = addr.Length
- 'đổi chuỗi sang mảng các ký tự
- addarr = addr.ToCharArray()
- i = 0
- On Error GoTo test1
- 'duyệt tìm thành phần <account>
- While (i < len) And (addarr(i) <> "@"c)
- ch = addarr(i)
- If (("0"c <= ch) And (ch <= "9"c)) Or (("a"c <= ch) And (ch <= "z"c)) Then
- i = i + 1
- Else
- 'đã tìm được 1 ký tự không hợp cú pháp
- MsgBox("Email không hợp lệ")
- Exit Function
- End If
- End While
- test1:
- i = i + 1
- 'nếu hết chuỗi => không hợp cú pháp
- If i = len Then
- MsgBox("Email không hợp lệ")
- Exit Function
- End If
-
-
- On Error GoTo test2
- 'duyệt tìm thành phần đầu tiên của <server>
- While (i < len) And (addarr(i) <> "."c)
- ch = addarr(i)
- If (("0"c <= ch) And (ch <= "9"c)) Or (("a"c <= ch) And (ch <= "z"c)) Then
- i = i + 1
- Else
- 'đã tìm được 1 ký tự không hợp cú pháp
- MsgBox("Email không hợp lệ")
- Exit Function
- End If
- End While
- test2:
- i = i + 1
- 'nếu hết chuỗi => không hợp cú pháp
- If i = len Then Exit Function
- On Error GoTo test3
- 'duyệt tìm các thành phần còn lại của <server>
- While (i < len)
- ch = addarr(i)
- If (("0"c <= ch) And (ch <= "9"c)) Or (("a"c <= ch) And (ch <= "z"c) Or ch = "."c) Then
- i = i + 1
- Else
- MsgBox("Email không hợp lệ")
- Exit Function
- End If
- End While
- test3:
- MsgBox("Email hợp lệ")
- 'nếu chạy tới đây => hợp cú pháp
- IsDNSMailAddr = True
- End Function