0

使用以下 php preg_match 如果有人在 textarea 表单中输入除 az 或 0-9 之外的任何值,我将尝试显示错误消息。只有用户可以键入字符串和数值。不是,<? >任何 php、javascript 标签等。

if(preg_match("/^[a-zA-Z0-9]+/ ", $wall) != 1)
$err[] = "Wrong value";

因此,如果我将php 标签放在表单的开头,那么它会显示错误消息,但如果我输入“一些文本然后键入php 标签和另一个值”,那么它不会显示任何错误消息。

对不起我的英语不好。:(

4

3 回答 3

1

您可以检查是否有任何您不想要的字符。

if(preg_match("/[^a-zA-Z0-9]/ ", $wall)) {
  $err[] = "Wrong value";
}
于 2012-05-21T02:56:45.303 回答
1
if( preg_match("/^[a-zA-Z0-9]+$/ ", $wall) ) {
    $err[] = "Wrong value";
}

您必须锚定开头和结尾,否则他们可以键入a#$@#$@#$#.

此外,最后不需要!= 1。没有它,它更具可读性。

于 2012-05-21T02:58:41.740 回答
0

因为您已将表达式设置为检查字符串开头的字母数字字符,使用^

如果你把它改成这个,这将检查它是否在字符串的任何地方都有一个 < 或 >:

if(preg_match("/[<|>]+/ ", $wall))
$err[] = "Wrong value";
于 2012-05-21T02:48:12.150 回答