正则表达式,Regex PHP


Regular Expression,Regex PHP

我需要验证以下格式的字符串:

数字、字母和_
最小长度4,最大长度15
至少1个字母[a-z]

例如:

有效:


  • E
  • ABC_
  • 01A_
  • A12345_BCDW1234

无效:

  • ABC
  • 01A
  • A12345_BCDW123411
  • _1212392034
  • _
  • A_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);