需要一个简单的preg_match()模式PHP

时间:2013-05-12 13:35:13

标签: php

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

$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之间的任何数字)。

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分: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
}