初学者PHP。正则表达式,不包括字符

时间:2018-02-13 21:51:44

标签: php regex

我正在尝试为我的表单创建一个正则表达式,它将接受小写字符a-z,大写字母A-Z和所有数字。

我已成功包含了需要接受的内容,但我想要做的是排除以下字符$£*

我到目前为止的代码如下:

if (!preg_match("/^[a-zA-Z0-9 ^$£* ]{1,20}$/", $webdata['familypa']))

2 个答案:

答案 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]*$/