我在Access Db中有一个文本框,用户应该输入一个电子邮件地址。这是通过从Outlook 2010复制完成的。不幸的是,该副本还带有名称和尖括号。 Fred Bloggs <fred@bloggs.co.uk>
我希望使用这个正则表达式
.pattern = "[\w-\.]{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,3}"
标识电子邮件地址
但如果没有输入有效的电子邮件地址,我将如何剥离其他所有内容并抛出错误?谢谢!
答案 0 :(得分:0)
Microsoft Access VBA没有内置的Regex引擎。但是,您可以添加对 VBScript正则表达式库的引用并使用该引用。
以下是解释如何执行此操作的相关问题:
答案 1 :(得分:0)
如果电子邮件始终包含在最终<>
中,您可以
Public Function fmt(email As String) As String
pos = InStrRev(email, "<")
If (pos > 0) Then
email = Mid$(email, 1 + pos, 1 + Len(email) - pos)
email = Left$(email, Len(email) - 1)
End If
fmt = email
End Function
或
replace(mid(email,instrrev(email,"<")+1,len(email)),">","")
编辑;
对于正则表达式检查,添加对“Microsoft VBScript正则表达式库”的引用(工具&gt;引用)和;
Public Function fmt(email As String) As String
pos = InStrRev(email, "<")
If (pos > 0) Then
email = Mid$(email, 1 + pos, 1 + Len(email) - pos)
email = Left$(email, Len(email) - 1)
End If
fmt = email
With New RegExp
.Global = True
.IgnoreCase = True
.MultiLine = True
.Pattern = "^\S+@\S+\.\S+$"
If Not .Test(fmt) Then fmt = ""
End With
End Function
返回有效的电子邮件地址,如果无效,则返回“”。
我放弃你的RE;推理:Using a regular expression to validate an email address