コードを検証するための正規表現を作成しようとしています。ルールは次のとおりです。
- BまたはJまたは28で始まります
- 文字列の全長は7文字または13文字(開始文字を含む)である必要があります
- 開始文字に続く文字はすべて数字でなければなりません
誰かがこれで私を助けることができますか?ありがとう
私は次のようなことを試みました
$pattern = "/^((J|B|28)([0-9])({7}|{13})?/i";
しかし、うまくいかないようです:\
$pattern = "/^(?=(.{7}|.{13})$)(B|J|28)\d+$/";
まず、次の正規表現を使用してパターンを照合します。最初のグループの最初の識別子と、2 番目のグループの次の数字をキャプチャします。
<?php
$pattern = "/^(B|J|28)([0-9]+)$/i";
?>
次に、実行strlen()
して長さを検証します。正規表現は、グループ間で変数の長さを検証するための優れたツールではありません。
<?php
$hasValidLength = strlen( $str ) === 7 || strlen( $str ) === 13;
?>