-5

次の形式で文字列を検証する必要があります。

数字、文字、および_
最小長4および最大長15
少なくとも1文字[az]

例えば:

有効:

  • あいうえお
  • ABCDE
  • ABC_
  • 01A_
  • A12345_BCDW1234

有効ではありません:

  • ABC
  • 01A
  • A12345_BCDW123411
  • _1212392034
  • _
  • A_1

何度か試しましたが、うまくいきませんでした。

4

1 に答える 1

1

これを1つの正規表現で実行できるとは思いません。長さ{4,15}と「文字を含める必要がある」の制約の検証は、個別に実行する必要があります。

$test_inputs = array(
      'ABCD', 'ABCDE', 'ABC_', '01A_', 'A12345_BCDW1234'
    , 'ABC', '01A', 'A12345_BCDW123411', '_1212392034', '_', 'A_1'
);

$res = array();
foreach($test_inputs as $input)
{
    $res[$input] = (preg_match('/^[A-Z0-9_]{4,15}$/i', $input) && preg_match('/[A-Z]/i', $input));
}

var_dump($res);
于 2013-02-17T01:45:04.357 に答える