我正在尝试验证通过 PHP 中的 POST 方法处理的表单。传递的一些示例值是姓名、年龄、性别、性格类型等。
为了确定给出的用户数据是否正确,我使用了正则表达式。
例如,这是我要工作的一些..名称(只要它不为空,就可以了:
if (strlen($name) == 0)
这个对我有用。另一种有效的是性格类型,它必须是荣格性格测试中的类型(例如 ISTP、ENTP、INFP 等)。我的代码是:
if (!preg_match("/[IE]{1}[NS]{1}[FT]{1}[JP]{1}/", $per))
其中 $per 是用户提交的 Jung 人格类型。这个也很好用。
我遇到的困难是年龄。它必须是 0-99,所以是 1 或 2 位数字。我觉得它应该如此简单,但无论出于何种原因,它都不起作用。这是我尝试过的正则表达式:
/\d{1,2}/
/[0-9]{1,2}/
/(\d|\d\d)/
/([0-9]|[0-9][0-9])/
我不明白为什么这些都不起作用,所有四个似乎都完全符合标准。也许我不明白如何正确使用正则表达式,但我花了最后几个小时仔细阅读示例,所以我很有信心它应该是正确的。
任何帮助将不胜感激,谢谢:)
编辑:如果这有帮助,将值“abcdefg”或“ab”作为 $age 值传递出来作为错误(这是正确的)。但是,传递“100”、“333”或“99999”的值会在匹配时出现(这是错误的,或者不是我想要的)。希望这有助于解释更多~