我使用以下正则表达式来验证用户名(注册表单中的输入类型文本),以确保用户名仅包含字母数字字符,点,短划线或下划线。PHP正则表达式&号问题
if (!preg_match('/^[a-zA-Z0-9\.\_-]+$/',$my_name)) { echo 'no_valid'; }
当我在实例%或#文本字段或@ I型找回正确的,它不是一个有效的用户名,也有效字符错误信息(-_)被接受,因此它似乎直到我输入&或+时,我可以使用preg_match键入任何我已经排除的无效字符。
有人能告诉我为什么会发生这种情况,我该如何解决这个问题?
我试过你的代码,它适用于我。 –
$ my_name是如何设置的?即'index.php?name = bob&x'命名为'bob'。你可能需要添加一个最小长度,例如'/^[a-zA-Z0-9 \ ._ \ - ] {5,} $ /'用于5个字符或更多的字符串 – Waygood
对不起,我忘了提及我称之为PHP正则表达式由输入类型用户名字段的键盘事件上的ajax帖子。我不知道这是否是一个额外的有价值的信息给你。 – AlexCode