>  기사  >  백엔드 개발  >  javascript - 문자열에 이모티콘 문자가 포함되어 있는지 어떻게 알 수 있나요?

javascript - 문자열에 이모티콘 문자가 포함되어 있는지 어떻게 알 수 있나요?

WBOY
WBOY원래의
2016-08-18 09:16:352825검색

휴대폰에서 입력한 내용을 위주로 페이지를 PC브라우저에서 볼 수 있도록 만들었습니다.

단, 이모티콘은 휴대폰에서 입력은 가능하지만 브라우저에서는 표시할 수 없습니다. 어떤 이유에서든 나는 그것이 나타나는 것을 원하지 않습니다.

그래서 휴대폰으로 제출할 때 사용자가 입력한 텍스트에 이모티콘이 포함되어 있는지 확인하기 위해 테스트를 해보고 싶습니다. 그렇다면 사용자에게 이모티콘을 포함하지 말라는 메시지가 표시됩니다.

if 조건은 어떻게 작성하나요?

PHP 백엔드 또는 JS 프론트엔드 코드가 허용됩니다.

답글 내용:

휴대폰에서 입력한 내용을 위주로 페이지를 PC브라우저에서 볼 수 있도록 만들었습니다.

단, 이모티콘은 휴대폰에서 입력은 가능하지만 브라우저에서는 표시할 수 없습니다. 어떤 이유에서든 나는 그것이 나타나는 것을 원하지 않습니다.

그래서 휴대폰으로 제출할 때 사용자가 입력한 텍스트에 이모티콘이 포함되어 있는지 확인하기 위해 테스트를 해보고 싶습니다. 그렇다면 사용자에게 이모티콘을 포함하지 말라는 메시지가 표시됩니다.

if 조건은 어떻게 작성하나요?

PHP 백엔드 또는 JS 프론트엔드 코드가 허용됩니다.

정규식을 사용하여 필터링하거나 유니코드 인코딩을 사용하여 결정합니다.

http://www.unicode.org/Public...
내부에 나열된 범위에 따라 필터링하세요. 정규식을 사용하거나 해시 맵을 나열할 수 있습니다

var re = /[식 1]|[식 2]|[식 3]..../ ;
re.test(감지하려는 문자);

사실 방법이 있어요. 이를 달성하려면 mb 일련의 함수를 사용하세요. 먼저 길이를 결정하십시오. 그런 다음 반복하여 각 문자를 결정합니다. 어떤 문자가 4바이트인지 확인합니다. 하나의 이모티콘 기호는 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으로 문의하세요.