我正在尝试创建一个正则表达式来验证代码。规则如下:
任何人都可以帮我吗?感谢
我试过像
这样的东西$pattern = "/^((J|B|28)([0-9])({7}|{13})?/i";
但它似乎不起作用:\
答案 0 :(得分:6)
$pattern = "/^(?=(.{7}|.{13})$)(B|J|28)\d+$/";
答案 1 :(得分:1)
首先使用以下正则表达式匹配模式。它将捕获第一组中的第一个标识符和第二组中的后续数字。
<?php
$pattern = "/^(B|J|28)([0-9]+)$/i";
?>
然后运行strlen()
以验证长度。正则表达式不是验证组间变量长度的好工具。
<?php
$hasValidLength = strlen( $str ) === 7 || strlen( $str ) === 13;
?>