我正在尝试创建一个正则表达式来验证代码。规则如下:
- 它以 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;
?>