首頁  >  文章  >  後端開發  >  javascript - 如何判斷字串中是否包含emoji字元?

javascript - 如何判斷字串中是否包含emoji字元?

WBOY
WBOY原創
2016-08-18 09:16:352825瀏覽

做了一個頁面,主要是手機上輸入的內容,要顯示在PC瀏覽器上。

然而手機端能輸入emoji,但瀏覽器顯示不出來。由於某些原因也不想讓它顯示出來。

所以希望在手機端提交時做一下檢測,檢查用戶輸入的文本中是否包含emoji,如果有就提示用戶不能包含emoji。

請問這個if條件該怎麼寫?

php後端或js前端的程式碼都可以。

回覆內容:

做了一個頁面,主要是手機上輸入的內容,要顯示在PC瀏覽器上。

然而手機端能輸入emoji,但瀏覽器顯示不出來。由於某些原因也不想讓它顯示出來。

所以希望在手機端提交時做一下檢測,檢查用戶輸入的文本中是否包含emoji,如果有就提示用戶不能包含emoji。

請問這個if條件該怎麼寫?

php後端或js前端的程式碼都可以。

用正規表示式過濾唄,或用unicode編碼判斷

http://www.unicode.org/Public...
根據裡面列出來的範圍進行過濾,可以用正規表達式,也可以列一個hash map

var re = /[表情1]|[表情2]|[表情3]..../ ;
re.test(你要偵測的字元);

其實有一個辦法。用mb系列函數來實作。首先確定長度。然後,循環判斷每個字符,那個字符是4個位元組的就可以了。 emoiji的一個符號佔用4個字元。一般的字串也就是漢字最多佔用3個字元。這麼一判斷,就能搞定了。

確定字元的編碼,然後,匹配,替換。

<code>var param = "";
var regRule = /\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE4F]/g;
if(param.match(regRule)) {
    param = param.replace(/\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE4F]/g, "");
    alert("不支持表情");
} </code>

<code>function have_emoji($str){
    $mat = [];
    preg_match_all('/./u', $str,$mat);
    foreach ($mat[0] as $v){
        if(strlen($v) > 3){return true;}
    }
    return false;
}</code>
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn