如何检查参考数字使用PHP使用特定的字母和数字序列

S. *_*owe 0 php regex validation

我收到一个作业,需要检查预订参考是否有效。预订参考必须采用“ ABC-1234”的样式。我需要使用PHP来检查前三个字母是“ ACT ABQ BDE”。然后是“-”。然后,我需要检查数字按以下顺序排列,第一个数字是“ 1”或“ 2”,接下来的三个数字在0-9范围内。这是我目前必须检查的代码:

 if (isset($webdata['bookingreference']  ))  {
  if (!preg_match("/^ [ACT] [ABQ] [BDE] - [(1),(2)]{5}[0-9]{6,}$/", $webdata['bookingreference']))  {
    $formerror['bookingreference'] = '<span class="warn" >Not valid on server: Invalid booking reference</span>';
    $valid = FALSE;
  }
Run Code Online (Sandbox Code Playgroud)

但是,当我对此进行测试时,无论序列是什么,我总是得到消息,它是有效的。任何帮助深表感谢!!

vas*_*123 6

干得好。

^(ACT|ABQ|BDE)-(1|2)[0-9]{3}$
Run Code Online (Sandbox Code Playgroud)

^(ACT|ABQ|BDE)表示应以ACTABQ或开头BDE

- 符号表示原样。

(1|2) 应该跟随一两个。

[0-9]{3}$表示它应该是来自的数字,0-9并且{3}应该正好是三个字符,$这就是结尾。

您可以在这里检查。