【问题标题】:Strip everything but an email address from a text box从文本框中删除除电子邮件地址之外的所有内容
【发布时间】:2011-04-28 13:43:18
【问题描述】:

我在 Access Db 中有一个文本框,用户应在其中输入电子邮件地址。这是通过从 Outlook 2010 复制来完成的。不幸的是,该副本还带有名称和尖括号 Fred Bloggs <fred@bloggs.co.uk>

我希望使用这个正则表达式

.pattern = "[\w-\.]{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,3}"

识别电子邮件地址。

如果没有输入有效的电子邮件地址,我将如何剥离其他所有内容并引发错误?

【问题讨论】:

    标签: regex vba ms-access


    【解决方案1】:

    Microsoft Access VBA 没有内置的正则表达式引擎。但是,您可以添加对 VBScript 正则表达式库的引用并使用它。

    这是一个相关的问题,解释了如何做到这一点:

    【讨论】:

    • 后期绑定优于创建引用。
    • @David:嗯,这取决于:对于开发,早期绑定有很大帮助(IntelliSense 等),特别是对于不熟悉库对象模型的经验不足的开发人员.当然,对于部署来说,切换到后期绑定可以省去很多麻烦。
    • 我致力于为我的客户提供简单可靠的服务。有时这意味着我作为开发人员必须更加努力。
    • @David:嗯,在编译时发现错误也提高了代码的可靠性。 ;-) 但是是的,总的来说我同意你的看法。
    【解决方案2】:

    如果电子邮件始终包含在最后的<> 中,您可以

    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 正则表达式库”的引用(工具 > 引用)和;

    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

    【讨论】:

    • 感谢您的回复!就是这样,直接从 Outlook 粘贴到&lt;&gt;,但有时用户会尝试不输入任何内容,有时会正确输入。我正在寻找一个我认为将涵盖所有基础的子/功能。但也许你的方案可以用,我就是不知道怎么实现?
    • RegEx 库最好使用后期绑定,你不觉得吗?
    猜你喜欢
    • 2015-02-03
    • 2010-11-26
    • 2011-11-18
    • 1970-01-01
    • 2020-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-17
    相关资源
    最近更新 更多