最近小編開發(fā)微信的時候突然會因為一些莫名奇妙的問題所困惑,下面舉例說明
微信獲取關(guān)注用戶的用戶名 經(jīng)常會有用戶的昵稱帶有emoji特殊表情符號,因為好看帥裝逼用嘛,就因為這樣給很多微信開發(fā)的技術(shù)帶來了很多不必要的困惑。因為你發(fā)現(xiàn)為什么在獲取用戶時候出現(xiàn)插入用戶資料失敗等問題?
不多說了進行問題解答???
第一種方法 后端 ?php 端過濾emoji 表情符號方法?
通過正則來過濾emoji表情符號的方法,很完美的解決了問題
/*
保留字符串中的字母、數(shù)字、下劃線、小數(shù)點,短橫線。
*/
public function strGuolv($str)
{
preg_match_all('/[\x{4e00}-\x{9fff}]+/u', $str, $matches);
return $str;
}
第二種方法 js 前端過濾emoji表情符號
常常用于textarea ?input ?文本的輸入校驗。
在js 里加入這個方法,通過傳入字符串str ?即可實現(xiàn)前端的數(shù)據(jù)過濾掉emoji的表情符號,完美解決,已測試通過。
function emoji2Str (str) {
return unescape(escape(str).replace(/\%uD.{3}/g, ''));
}