我是正则表达式的新手,并试图编写一行代码来匹配
- 字符串不应以数字开头。( 好的 )
- 字符串中应该只有字母、数字、破折号和下划线。( 好的 )
- 字符串长度应在 5 到 25 之间(失败)
规则 1 和 2 正常工作,但规则 3 不能。
任何帮助解决它?
这是我的代码:
$arr = [
'-foobar',
'foobar',
'32-xx',
'xx23',
'A2l',
'2aAA',
'_a2d',
'-A22',
'-34x',
'2--a',
'a--a-'
];
foreach( $arr as $a ){
echo check( $a );
}
function check($string){
if (preg_match("/^[a-zA-Z]+([a-zA-Z0-9_-]?){5,25}$/", $string)) {
return "$string ---------------> match was found.<br />";
} else {
return "$string ---------------> match was not found.<br />";
}
}