0

到目前为止,对我来说 PHP 中最难的事情就是preg_match()模式。我传递了一个id以“n”字母或“q”字母开头并后面有数字的变量。例如

$id = $_POST['id'];

echo $id;

output: n123

现在,当某个字母在id数字前面时,我需要运行不同的函数。我怎样才能做到这一点preg_match()?我已经开始了一些事情......:

$n_pattern = '/n[^0-9]/';
$q_pattern = '/q[^0-9]/';

但我什至没有尝试过,因为我确定它不正确:) 顺便说一句,这个id数字在 1 int 和 6 int 之间,所以我需要将它们全部匹配。(不知道我说的是否正确……假设id可以是 1 到 999999 之间的任何数字)。

4

2 回答 2

1

你应该为你的比赛使用这个正则表达式:

/^[qn]\d{1,6}$/

这意味着您的输入可以以字母 q 或 n 开头,后跟 1 到 6 位数字。

于 2013-05-12T13:37:43.030 回答
1

另一个简单的解决方案是检测第一个字符并验证第二部分是否为数字/整数;

$type = $id{0}; // first character of the id (n, q)
$number = (int) substr($id, 1); // rest of the id

要验证“类型”是否正确,您可以使用类似的东西;

if (!in_array($type, array('n', 'q')) {
    // invalid type
}
于 2013-05-12T14:14:01.867 回答