PHP正则表达式字符串,以特定字符开头,后跟数字


PHP regular expression string starting with certain characters and followed by digits

我正在尝试创建一个正则表达式来验证代码。规则如下:

  • 它以B、J或28开头
  • 字符串的总长度必须为7或13个字符(包括起始字符)
  • 起始字符后面的字符必须全部为数字

有人能帮我吗?感谢

我试过类似的东西

$pattern = "/^((J|B|28)([0-9])({7}|{13})?/i";

但它似乎不起作用:''

$pattern = "/^(?=(.{7}|.{13})$)(B|J|28)'d+$/";

首先使用以下正则表达式来匹配模式。它将捕获第一组中的第一个标识符和第二组中的以下数字。

<?php 
$pattern = "/^(B|J|28)([0-9]+)$/i"; 
?>

然后运行strlen()以验证长度。正则表达式不是验证组间可变长度的好工具。

<?php 
$hasValidLength = strlen( $str ) === 7 || strlen( $str ) === 13; 
?>