0

我正在验证我将在我的网站上使用的表格,以获取有关正在向我们注册在线帐户的企业人员的某些详细信息。

我写这个问题是为了获得一些关于如何正确验证以下类型信息的建议。

为了解释这一点,我将列出一系列数据类型以及我想到的 html 验证。然后可以在一系列 php 验证中重用它,以确保表单始终得到正确验证,但是在我看来,标准的 html 验证看起来比我通过应用我自己的 css 所能实现的任何东西都要好。

名字 - ^[a-zA-Z -]{1,120}(az,1 到 120 个字符长,大小写字母)

姓氏 -^[a-zA-Z -]{1,120}

电子邮件地址 - ^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$(验证包括主要使用的 .com 和 .co.za 域)

如果有人对改进这些验证模式或其他一些使用更标准的验证模式有任何建议,我们将不胜感激。

此外,任何关于为什么应该或不应该使用它们的信息也会很好。

谢谢!!

4

1 回答 1

2

您对名称的“验证”排除了所有不使用拉丁字母的语言。为什么?我想你可以检查那里没有任何数字并将其保留在那里。如果您希望没有拉丁名字的人能够使用您的网站,那么您的(数据库?)应该采用 UTF-8 等字符集,并且您必须允许所有内容。即使试图删除粗鲁的词语也可能导致斯肯索普问题

不要使用正则表达式验证电子邮件。邮寄/ ping地址并让该人单击链接。使用正则表达式验证电子邮件地址在技术上是不可能的,而开发的更好的正则表达式可能荒谬的。存在非拉丁域名,与名称一样,您不能使用拉丁字母来确保它们包含您想要的内容。

此外,由于ICANN 目前正在出售一些新 gTLD,这将大大增加可用的名称空间,如果不检查,您将永远无法保证某些东西确实存在。

显然,如果您使用的是数据库,请使用准备好的语句来停止 SQL 注入。

于 2012-06-17T12:14:13.663 回答