当我刚学习使用正则表达式时,我们被教授如何解析诸如电话号码(显然总是5位数字、一个可选空格和另外6个数字),电子邮件地址(显然总是字母数字,然后是单个“@”,接着是字母数字后跟一个“.”和三个字母),这些都应该用来验证用户输入的数据。当然,随着我的发展,我已经学会了基本方法的愚蠢之处,但是我越看,就越质疑整个概念,即使通过正则表达式进行最开放、小心和正确的电子邮件地址验证,也需要数百甚至数千个字符,以便同时接受所有合法情况并正确地拒绝非法情况。更糟糕的是,所有这些努力对实际有效性一无所用,用户可能会意外添加一个“a”,或者根本不使用该电子邮件地址,甚至在使用其他人的地址,或者甚至使用一个被不适当标记的“+”符号。然而与此同时,似乎我遇到的每个网站仍在进行这种技术检查,阻止我在电子邮件地址或名称中输入更加模糊的字符,或者反对某人拥有多个或少于一个标题、一个名字和一个姓氏,所有这些都是纯拉丁字符制成的,但没有任何形式的检查以确保它是我的真实姓名。这是否有益呢?一旦处理了注入攻击(应通过除消毒输入外的其他方法来处理),这些检查还有其他用途吗?另一方面,是否有一种确切的方法来验证用户详细信息,而不是在上下文中“使用”它们并查看是否失败?