我正在尝试验证一些输入,但我得到了相反的结果(或者我完全错过了该preg_match
函数的使用?)
这是我的代码:
$check_firstname = "@#";
if(preg_match('/[^A-Za-z0-9_]/', $check_firstname)) echo "valid"; else echo "invalid";
我会认为这个正则表达式preg_match
不仅允许字母数字字符,而且这个输入给出的输出valid
!如果输入(在本例中check_firstname
为 )不是字母数字,为什么要preg_match
找到匹配项?我已经检查了文档,但我不明白发生了什么。
我真正的要求是在用户输入中允许破折号 (-) 和字母数字字符,但是当我的基本测试似乎不起作用时,我不知道如何到达任何地方。
编辑
谢谢您的反馈!我现在遇到插入符号的问题。但是我忘了提到除了破折号之外,我还需要允许空格。