正则表达式,正则表达式PHP

时间:2013-02-17 01:09:39

标签: php regex expression

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

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

例如:

有效:

  • ABCD
  • ABCDE
  • ABC_
  • 01A_
  • A12345_BCDW1234

无效:

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

我做了几次尝试但没有工作。

1 个答案:

答案 0 :(得分: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);