关于vb.net:如何验证文本框以仅接受vb2010中的电子邮件ID

how to validate a textbox to accept only email id in vb2010

我有一个文本框,用户应该在其中输入他的电子邮件ID。如何验证它只接受电子邮件ID,如果电子邮件ID不包含"@",我希望显示一个消息框,输入有效的电子邮件ID


最好的解决办法是复查。第一个在客户端使用javascript(请参见:javascript正则表达式电子邮件验证),第二个在服务器端使用类似的方法(请参见:如何使用VB编码为ASP.NET表单生成验证代码)。

为什么要两张支票?

  • 如果只有客户端验证,则无法确保用户在将请求发送到服务器之前不会更改内容。用户还可以拥有不兼容脚本的浏览器,或者禁用脚本。

  • 如果您只有服务器端验证,那么您需要等待,直到用户按下一个导致Postbask的按钮,然后检查格式是否有效。如果没有,你需要刷新给他有关信息的页面。这是完全有效的,但并不友好,因为用户必须等到看到服务器响应,而且某些控件也会丢失写入的信息(例如,密码字段)。

下一次在问之前试着做些研究。这个主题有几个答案。


1
2
3
4
5
6
7
8
9
</asp:TextBox>

<asp:RegularExpressionValidator ID="regEmailId" runat="server"
   ControlToValidate="txtEmailID" ErrorMessage="Invalid Email"
   ValidationExpression="\b[A-Z0-9._%+-]+@[A-Z0-9.-]+.[A-Z]{2,4}\b"
   ValidationGroup="Validate"></asp:RegularExpressionValidator>

<asp:Button id="btnEmailValidation" runat="server" ValidationGroup="Validate"
   Text="Validate Email"/>