php过滤只保留中文,英文以及数字的方法

2022-10-11 20:26:53 147 0
魁首哥

今天在开发一个关于QQ号登录的功能时,发现获取的QQ号昵称中有的带有一些特殊的字符。而这些带有特殊字符的昵称在其它功能中调用时会发生一些判断错误,所以就写了一个过滤的正规表达式,用来过滤昵称中的特殊字符,只保留中文,英文以及数字。

PHP只保留中文,英文以及数字的正则表达式

utf8 编码表达式

/[\x{4e00}-\x{9fa5}a-zA-Z0-9]/u
 

非utf8编码表达式

/[\x80-\xFF]/
 

PHP过滤只保留中文,英文以及数字的方法

以面已经给出的过滤规则的正则表达式,我们可以利用正则表达式编写一个函数,用于过滤 字符串 中的特殊字符,只保留中文,英文以及数字三种类型的字符串。

函数如下:

encoding ='utf8'){
 $pattern =($encoding=='utf8')?'/[\x{4e00}-\x{9fa5}a-zA-Z0-9]/u':'/[\x80-\xFF]/';
 preg_match_all($pattern,$chars,$result);
 return join('',$result[0]);
}
?>
 

调用方法:


 

输出结果:

feiniaomycom墨初zblog
 

收藏
分享
海报
0 条评论
147
上一篇:PHP为什么受欢迎?和Python、ASP.NET相比优势体现在哪些方面? 下一篇:PHP连接含Redis密码验证、指定某一Redis数据库

本站已关闭游客评论,请登录或者注册后再评论吧~

忘记密码?

图形验证码