/**
* 过滤掉含韩语、日语等非汉字、纯英文、纯数字
* 汉字加数字、英文 ok
* 可能有特殊字符
* */
$str = " love,poem";
//$str = " 日音•推荐";
//$str = "李易峰情人节在家烤全羊 ";
//$str=" 早安,厦门";
//$str=" 你能做什么?献血,现在献血,经常献血";
//$str=" 新疆,亚克西!";
//$str = "EXID(이엑스아이디)";
//$str = "GFriend(여자친구)";
//$str = "Surface Pro (2017)";
//$str = "首尔 (서울)";
//$str = "首尔 (서울)北京 英文(中文(!,";
//$str = "Php中文";
var_dump(filterTitle($str));
function filterTitle($title) {
$title = trim($title);
$str = filterEmoji($title);
$specialChar = " ::()()%%/\\|、-_—+!!·•??,,。.“”‘’\"'&《》<>「」…";
$regSpecialChar = "/[" . preg_quote($specialChar, "/") . "]+/u";
$strReplace = preg_replace($regSpecialChar, "", $str);
//纯英文 纯数字
$reg = "/^[a-z0-9\s]+$/iu";
preg_match($reg, $strReplace, $match);
if ($match) {
return false;
}
/**
* 三种空格unicode(\u00A0,\u0020,\u3000)表示的区别
* 1.不间断空格\u00A0,主要用在office中,让一个单词在结尾处不会换行显示,快捷键ctrl+shift+space ,trim去不掉
* 2.半角空格(英文符号)\u0020,代码中常用的;
* 3.全角空格(中文符号)\u3000,中文文章中使用;
*/
$chineseCharReg = "/[\x{4e00}-\x{9fa5}0-9a-z\x{00a0}]+/iu";
$strReplace = preg_replace($chineseCharReg, "", $strReplace);
if ($strReplace) {
return false;
}
return true;
}
// 过滤掉emoji表情
function filterEmoji($str) {
$str = preg_replace_callback("/./u",
function (array $match) {
return strlen($match[0]) >= 4 ? '' : $match[0];
},
$str);
return $str;
}