最近小編開(kāi)發(fā)微信的時(shí)候突然會(huì)因?yàn)橐恍┠婷畹膯?wèn)題所困惑扳肛,下面舉例說(shuō)明
微信獲取關(guān)注用戶(hù)的用戶(hù)名 經(jīng)常會(huì)有用戶(hù)的昵稱(chēng)帶有emoji特殊表情符號(hào)游盲,因?yàn)楹每磶浹b逼用嘛纫谅,就因?yàn)檫@樣給很多微信開(kāi)發(fā)的技術(shù)帶來(lái)了很多不必要的困惑偎漫。因?yàn)槟惆l(fā)現(xiàn)為什么在獲取用戶(hù)時(shí)候出現(xiàn)插入用戶(hù)資料失敗等問(wèn)題?
不多說(shuō)了進(jìn)行問(wèn)題解答方篮?名秀??
第一種方法 后端 ?php 端過(guò)濾emoji 表情符號(hào)方法?
通過(guò)正則來(lái)過(guò)濾emoji表情符號(hào)的方法藕溅,很完美的解決了問(wèn)題
/*
保留字符串中的字母匕得、數(shù)字、下劃線(xiàn)巾表、小數(shù)點(diǎn)耗跛,短橫線(xiàn)。
*/
public function strGuolv($str)
{
preg_match_all('/[\x{4e00}-\x{9fff}]+/u', $str, $matches);
return $str;
}
第二種方法 js 前端過(guò)濾emoji表情符號(hào)
常常用于textarea ?input ?文本的輸入校驗(yàn)攒发。
在js 里加入這個(gè)方法调塌,通過(guò)傳入字符串str ?即可實(shí)現(xiàn)前端的數(shù)據(jù)過(guò)濾掉emoji的表情符號(hào),完美解決惠猿,已測(cè)試通過(guò)羔砾。
function emoji2Str (str) {
return unescape(escape(str).replace(/\%uD.{3}/g, ''));
}