我需要验证以下格式的字符串:
数字、字母和_
最小长度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);