在表单中,用户可以输入一些文本。在验证php中,我想检查此文本是否仅包含字母,数字和允许的特殊字符:.,:;'"/*$@#<>&+-
$pattern = '/^i';
$chars = ".,:;'\"/*$@#<>&+-";
$newString = htmlspecialchars($chars);
if (!preg_match($pattern, $chars, $text)) $error = $error . "You can use only letters, digits and [.,:;'\"/*$@#<>&+-]".'<br>';
将$error
变量发送回带有表单的页面并显示在那里。
我使用错误的模式吗?无论我在输入框中输入什么,我都会收到错误。
答案 0 :(得分:3)
这是您的英文代码:
嗯,你的问题应该是显而易见的。 /^i
不是有效的正则表达式,如果它是在文本的开头寻找文字i
,那就是它。
这就是我认为你的意思:
$chars = ".:;'\"/*$@#<>&+-";
if( preg_match("([^a-zA-Z0-9".preg_quote($chars)."])",$text)) $error .= "You can only....";