1

当我尝试匹配一些用户输入代码时,我总是得到 0 作为返回值。

$input = $_POST['input'];
$look = '[a-zA-Z]';
preg_match($look,$input);

出于某种原因,我总是得到 0 作为返回值,为什么?

4

2 回答 2

0
<?php
$input = $_POST['input'];
$look = '/^[a-zA-Z]/';
preg_match($look,$input);
?>

手册

于 2013-09-07T11:44:48.847 回答
0

您的正则表达式中有几个问题:

  1. 正则表达式需要一个分隔符,所以它应该是`/[a-zA-Z]/'
  2. 你可能不止一个美国英文字母,所以最好使用+修饰符来匹配超过 1 个字母
  3. preg_match不使用行尾锚点可能会导致问题,并且您可能会从通话中得到误报。

结合所有建议,您可以使用此正则表达式:

$look = '/^[a-zA-Z]+$/';

或者

$look = '/^[a-z]+$/i';
于 2013-09-07T11:45:14.677 回答