我正在尝试为我的表单创建一个正则表达式,它将接受小写字符a-z,大写字母A-Z和所有数字。
我已成功包含了需要接受的内容,但我想要做的是排除以下字符$£*
我到目前为止的代码如下:
if (!preg_match("/^[a-zA-Z0-9 ^$£* ]{1,20}$/", $webdata['familypa']))
答案 0 :(得分:1)
您的模式可以准确/简明地写为:
~^[a-z\d]{1,20}$~i
if(!preg_match('~^[a-z\d]{1,20}$~i',$webdata['familypa'])){
echo 'familypa is not an alpha-numeric string or doesn\'t have a length of between 1 & 20 characters';
}else{
echo 'familypa is all good';
}
或者您可以编写更详细的非正则表达式方法:
*条件检查正长度,然后长度小于21,然后是字母数字。
if($len=strlen($webdata['familypa']) && $len<21 && ctype_alnum($webdata['familypa'])){
echo 'familypa is all good';
}else{
echo 'familypa is not an alpha-numeric string or doesn\'t have a length of between 1 & 20 characters';
}
答案 1 :(得分:0)
接受小写字符a-z,大写字母A-Z和所有数字(考虑任何数字0-9)的正则表达式如下:regex:/^[a-zA-Z0-9]*$/