本日在开拓一个关于QQ号登录的成果时,发明获取的QQ号昵称中有的带有一些非凡的字符。而这些带有非凡字符的昵称在其它成果中挪用时会产生一些判定错误,所以就写了一个过滤的正规表达式,用来过滤昵称中的非凡字符,只保存中文,英文以及数字。
PHP只保存中文,英文以及数字的正则表达式utf8编码表达式
/[\x{4e00}-\x{9fa5}a-zA-Z0-9]/u非utf8编码表达式
/[\x80-\xFF]/PHP过滤只保存中文,英文以及数字的要领以面已经给出的过滤法则的正则表达式,我们可以操作正则表达式编写一个函数,用于过滤字符串中的非凡字符,只保存中文,英文以及数字三种范例的字符串。
函数如下:
<?php function match_chinese($chars,$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]); } ?>挪用要领:
<?php $str = "feiniaomy.com?墨初。zblog,?#$%^&())*(&^"; echo match_chinese($str); ?>输出功效:
feiniaomycom墨初zblog