我正在尝试为我的一个朋友建立一个网站。我找到了关于联系表单的nice article。在本文中,解释了用于验证电子邮件的正则表达式的用法(作为反黑客工具)。我真的很喜欢这个想法,所以我尝试了这个:
<asp:RegularExpressionValidator ValidationExpression="^([\w\-\.\+\~]+\@[\w\.\-\!]+)$" runat="server" ControlToValidate="Email" CssClass="text-danger" ErrorMessage="Invalid email." ></asp:RegularExpressionValidator>
当它像me@master.com
那样通常发送电子邮件时,它会按预期工作。但是,我想允许国家/地区特殊字符ç
或é
,因此sněhurka@trpaslíci.cz
等电子邮件将会通过。
背后的原因是,在我的国家(捷克共和国)是(某?)某些动议允许字符在URL地址中加上标点符号(参见http://háčkyčárky.cz - 这是一个捷克网络讨论这个;想法被命名为IDN - 国际化域名 - 谷歌魔术。据我所知,它没有通过,但谁知道未来会怎样?
那么,请您知道如何在考虑这些国家角色的情况下提高正则表达式的方法吗? (是的,我想它目前不符合标准,但我并不关心它。)
我想我可以将这些字符手写成正则表达式,但它看起来真的是一种令人讨厌和丑陋的方式。此外,它不允许使用法语,马扎尔语等字母,因为我不知道它们。
感谢您的想法,
饶