MS Access 的电子邮件地址验证 table
Email address validation for MS Access table
我的 table 在访问 table 的 "Validation Rule" 部分进行了以下验证,使我输入的大多数电子邮件地址保持干净:
Like "?@?.??" And Not Like "[!a-z@=.^_$%!#&'`{|}?~/-]" and .
但是,它仍然允许 Bla.Bla@testing.co.u
之类的内容
我为 JavaScript 找到了这个 link。它比我的做得好得多,可以过滤掉上面提到的那种电子邮件地址。 How to validate an email address in JavaScript
它会如何查找 MS Access?函数或验证规则都很好,只是想知道是否可行。
RegExp 是验证电子邮件的最佳方式。
这是一个 VBA 函数,使用您链接的答案中的正则表达式
Public Function Email_Validation(ByVal strEmail As String) As Boolean
Const strRexExp As String = "^(([^<>()\[\]\.,;:\s@""]+(\.[^<>()\[\]\.,;:\s@""]+)*)|("".+""))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$"
Dim objRG As New RegExp
Dim IsValid As Boolean
On Error GoTo Err_Handler
strEmail = Trim(strEmail)
objRG.IgnoreCase = True
objRG.Global = True
objRG.Pattern = strRexExp
IsValid = objRG.Test(strEmail)
Exit_Function:
Email_Validation = IsValid
Exit Function
Err_Handler:
IsValid = False
MsgBox "Email_Validation Error: " & Err.Number & vbCrLf & vbCrLf & Err.Description
Resume Exit_Function
End Function
您必须添加对项目的引用:Microsoft VBScript Regular Expressions X.X
当你想验证时,使用
调用函数
Email_Validation("Bla.Bla@testing.co.u")
它将 return 真或假(在那种情况下为假)
嘿托马斯,非常感谢你的功能真的很有帮助。对于其他人,我刚刚发布了我是如何实现你的功能的。
Public Function Email_Validation(ByVal strEmail As String) As Boolean
Const strRexExp As String = "^(([^<>()\[\]\.,;:\s@""]+(\.[^<>()\[\]\.,;:\s@""]+)*)|("".+""))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$"
Dim objRG As New RegExp
Dim IsValid As Boolean
On Error GoTo Err_Handler
strEmail = Trim(strEmail)
objRG.IgnoreCase = True
objRG.Global = True
objRG.Pattern = strRexExp
IsValid = objRG.Test(strEmail)
Exit_Function:
Email_Validation = IsValid
Exit Function
Err_Handler:
IsValid = False
MsgBox "Email_Validation Error: " & Err.Number & vbCrLf & vbCrLf & Err.Description
Resume Exit_Function
End Function
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("Select * FROM Emails WHERE DateAdded =#" & Date & "#;")
Dim Email As String
'Check to see if the table has any rows
If Not (rs.EOF And rs.BOF) Then
rs.MoveFirst 'Unnecessary in this case, but still a good habit
Do Until rs.EOF = True
'Perform an edit
If Email_Validation(rs!Emails) = True Then
rs.MoveNext
Else
rs.Delete
End If
rs.MoveNext
Loop
Else
MsgBox "There are no records in the recordset."
End If
rs.Close 'Close the recordset
Set rs = Nothing 'Clean up
我的 table 在访问 table 的 "Validation Rule" 部分进行了以下验证,使我输入的大多数电子邮件地址保持干净:
Like "?@?.??" And Not Like "[!a-z@=.^_$%!#&'`{|}?~/-]" and .
但是,它仍然允许 Bla.Bla@testing.co.u
之类的内容我为 JavaScript 找到了这个 link。它比我的做得好得多,可以过滤掉上面提到的那种电子邮件地址。 How to validate an email address in JavaScript
它会如何查找 MS Access?函数或验证规则都很好,只是想知道是否可行。
RegExp 是验证电子邮件的最佳方式。
这是一个 VBA 函数,使用您链接的答案中的正则表达式
Public Function Email_Validation(ByVal strEmail As String) As Boolean
Const strRexExp As String = "^(([^<>()\[\]\.,;:\s@""]+(\.[^<>()\[\]\.,;:\s@""]+)*)|("".+""))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$"
Dim objRG As New RegExp
Dim IsValid As Boolean
On Error GoTo Err_Handler
strEmail = Trim(strEmail)
objRG.IgnoreCase = True
objRG.Global = True
objRG.Pattern = strRexExp
IsValid = objRG.Test(strEmail)
Exit_Function:
Email_Validation = IsValid
Exit Function
Err_Handler:
IsValid = False
MsgBox "Email_Validation Error: " & Err.Number & vbCrLf & vbCrLf & Err.Description
Resume Exit_Function
End Function
您必须添加对项目的引用:Microsoft VBScript Regular Expressions X.X
当你想验证时,使用
调用函数Email_Validation("Bla.Bla@testing.co.u")
它将 return 真或假(在那种情况下为假)
嘿托马斯,非常感谢你的功能真的很有帮助。对于其他人,我刚刚发布了我是如何实现你的功能的。
Public Function Email_Validation(ByVal strEmail As String) As Boolean
Const strRexExp As String = "^(([^<>()\[\]\.,;:\s@""]+(\.[^<>()\[\]\.,;:\s@""]+)*)|("".+""))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$"
Dim objRG As New RegExp
Dim IsValid As Boolean
On Error GoTo Err_Handler
strEmail = Trim(strEmail)
objRG.IgnoreCase = True
objRG.Global = True
objRG.Pattern = strRexExp
IsValid = objRG.Test(strEmail)
Exit_Function:
Email_Validation = IsValid
Exit Function
Err_Handler:
IsValid = False
MsgBox "Email_Validation Error: " & Err.Number & vbCrLf & vbCrLf & Err.Description
Resume Exit_Function
End Function
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("Select * FROM Emails WHERE DateAdded =#" & Date & "#;")
Dim Email As String
'Check to see if the table has any rows
If Not (rs.EOF And rs.BOF) Then
rs.MoveFirst 'Unnecessary in this case, but still a good habit
Do Until rs.EOF = True
'Perform an edit
If Email_Validation(rs!Emails) = True Then
rs.MoveNext
Else
rs.Delete
End If
rs.MoveNext
Loop
Else
MsgBox "There are no records in the recordset."
End If
rs.Close 'Close the recordset
Set rs = Nothing 'Clean up