【问题标题】:ASP Email ValidatorASP 电子邮件验证器
【发布时间】:2020-04-10 06:09:25
【问题描述】:

我有一个包含多行的文本框,每行都是一个电子邮件地址。我有一个按钮,单击该按钮应从文本框中读取电子邮件并验证它们是否正在工作电子邮件(没有拼写错误或任何东西)。我将如何去做这样的事情?对于上下文,文本框称为 emailBox

VB:

Protected Sub SaveButton(sender As Object, e As EventArgs)

End Sub

非常感谢大家!

【问题讨论】:

  • 定义“工作电子邮件”。您具体要验证什么?它们只是电子邮件地址的格式吗?或者是其他东西?另外,你卡住了哪个部分?从文本框中读取?将输入拆分为单独的电子邮件?执行您的验证?还有什么?您尝试了哪些方法,哪些没有按预期工作?
  • 嗨,所以我是asp和vb的新手。这实际上是我与他们一起完成的第一个项目。通过工作电子邮件,我确实假设电子邮件的语法正确。我不知道是否有办法检查它是否是一封实际的电子邮件,所以出于我的目的,我相信只检查语法就可以了。而且我对从文本框中获取电子邮件感到困惑,因为它是多行并逐行测试它们以进行验证。如果您知道任何可以提供帮助的信息,我将不胜感激

标签: asp.net vb.net textbox email-validation


【解决方案1】:

您好,我猜拼写错误是指有效的电子邮件语法。

您可以使用正则表达式。像这样:

Protected Sub SaveButton(sender As Object, e As EventArgs)
    dim regexExpression As New Regex("^[_a-z0-9-]+(.[a-z0-9-]+)@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,4})$")
    'get an array of emails
    dim emails = emailBox.text.Split(",")
    'loop through emails checking each one
    For Each email in emails
        dim valid = regexExpression.IsMatch(email)
        'do whatever with result
    Next
End Sub

您也需要导入它,将其添加到文件顶部:

Imports System.Text.RegularExpressions

那么变量 'valid' 的值将是 True 或 False,您可以随心所欲。

我已经编辑了我的答案,假设您可以使用逗号分隔您的电子邮件。

编辑 2:我不能保证正则表达式 100% 正确工作。运行您自己的测试,如果需要进行调整或查找/编写另一个。

【讨论】:

  • 您好,感谢您的帮助。这并不完全正确,因为文本框有多行,每行都是它自己的电子邮件地址。有没有办法以某种方式添加一个循环来使用该表达式测试每一行?
  • 你能用逗号分隔电子邮件地址并使用 String.Split() 方法吗?然后循环遍历数组?例如 emailBox.text.Split(",") 将返回一个字符串数组。
  • 我已经更新了我的答案,假设您可以用逗号分隔文本框中的电子邮件
  • 我不能使用逗号,我的老板只想每行一封电子邮件,仅此而已。文本框实际上是从一个字符串中填充的,该字符串中的所有电子邮件都由 ; 分隔。 .所以文本框每行收到一封电子邮件。然后我输入新的电子邮件。然后,当我单击保存按钮时,它会检查所有电子邮件是否有效,并将它们保存回数据库。因此,现在电子邮件位于由空格分隔的文本框中(我使用 vbCrLF 使每一行都成为新行)。您的正则表达式代码是否包含诸如“FirstName.Lastname@company.com”之类的电子邮件?中间哪里可能有句号?
  • 所以你可以在删除之前用分号替换我代码中的逗号。我个人认为设计可以更好,将它们全部放在一个文本框中并不理想。
猜你喜欢
  • 2020-08-07
  • 1970-01-01
  • 2018-10-23
  • 2017-10-12
  • 1970-01-01
  • 2017-12-16
  • 1970-01-01
  • 2016-03-08
相关资源
最近更新 更多