我需要以下列格式验证字符串:
数字,字母和_
最小长度4和最大长度15
至少1个字母[a-z]
例如:
有效:
无效:
我做了几次尝试但没有工作。
答案 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);