Php preg_match问题

时间:2012-05-21 02:44:25

标签: php

使用以下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标签和另一个值”然后它没有显示任何错误信息。

抱歉我的英语不好。:(

3 个答案:

答案 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";