PHP正则匹配字符串只能包含数字、字符串、下划线

2,132 阅读1分钟
//列子
$string = ' abc_123@c c!';

//去除字符串所有空格(结果为'abc_123@cc!')
$string = preg_replace('# #','',$string);
        
//验证字符串是否只包含数字和字母以及下划线
$res = preg_match("/^[a-zA-Z0-9_]+$/",$string);

//如果不符合正则表达式规则,则抛出异常
if (!$res){
    //自定义异常类
    throw new OperationException([
        'errorCode'=>999,
        'msg'=>'只能包含数字、字母、下划线'
    ]);
}
        

正则表达式规则:

中文 \x{4e00}-\x{9fa5}

字母 A-Za-z

数字 0-9

下划线 _

1、"/^[a-zA-Z0-9_]+$/" 只匹配:字母/数字/下划线

2、'/^[\x{4e00}-\x{9fa5}A-Za-z0-9_]+$/u' 只匹配:中文/字母/数字/下划线

3、'/^[\x{4e00}-\x{9fa5}A-Za-z0-9_]{1,20}$/u' 只匹配:中文/字母/数字/下划线,最少1个字符,最多20个字符。