使用以下php preg_match我试图显示错误消息,如果有人在textarea表单中输入除a-z或0-9之外的任何值。只有用户才能输入字符串和数值。不,< ? >任何php,javascript标签等。
if(preg_match("/^[a-zA-Z0-9]+/ ", $wall) != 1)
$err[] = "Wrong value";
所以,如果我把 php标签放到表单的开头那么它会显示错误信息,但是如果我输入“Some text然后输入 php标签和另一个值”然后它没有显示任何错误信息。
抱歉我的英语不好。:(
答案 0 :(得分:1)
您可以检查是否有任何您不想要的角色。
if(preg_match("/[^a-zA-Z0-9]/ ", $wall)) {
$err[] = "Wrong value";
}
答案 1 :(得分:1)
if( preg_match("/^[a-zA-Z0-9]+$/ ", $wall) ) {
$err[] = "Wrong value";
}
您必须锚定开头和结尾,否则他们可以键入a#$@#$@#$#
。
此外,最后不需要!= 1
。没有它,它更具可读性。
答案 2 :(得分:0)
因为您已设置表达式以使用^
检查字符串开头的字母数字字符
如果你把它改成这个,这将检查它是否有<或者>字符串中的任何地方:
if(preg_match("/[<|>]+/ ", $wall))
$err[] = "Wrong value";