我需要验证以下格式的字符串:
数字、字母和 _
最小长度 4 和最大长度 15
至少 1 个字母 [az]
例如:
有效的:
- A B C D
- ABCDE
- ABC_
- 01A_
- A12345_BCDW1234
无效:
- 美国广播公司
- 01A
- A12345_BCDW123411
- _1212392034
- _
- A_1
我做了几次尝试,但没有成功。
我需要验证以下格式的字符串:
数字、字母和 _
最小长度 4 和最大长度 15
至少 1 个字母 [az]
例如:
有效的:
无效:
我做了几次尝试,但没有成功。
我不认为你可以在一个正则表达式中做到这一点,长度 {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);