function isEmojiCharacter(substring) {  
    for ( var i = 0; i < substring.length; i++) {  
        var hs = substring.charCodeAt(i);  
        if (0xd800 <= hs && hs <= 0xdbff) {  
            if (substring.length > 1) {  
                var ls = substring.charCodeAt(i + 1);  
                var uc = ((hs - 0xd800) * 0x400) + (ls - 0xdc00) + 0x10000;  
                if (0x1d000 <= uc && uc <= 0x1f77f) {  
                    return true;  
        } else if (substring.length > 1) {  
            var ls = substring.charCodeAt(i + 1);  
            if (ls == 0x20e3) {  
                return true;  
        } else {  
            if (0x2100 <= hs && hs <= 0x27ff) {  
                return true;  
            } else if (0x2B05 <= hs && hs <= 0x2b07) {  
                return true;  
            } else if (0x2934 <= hs && hs <= 0x2935) {  
                return true;  
            } else if (0x3297 <= hs && hs <= 0x3299) {  
                return true;  
            } else if (hs == 0xa9 || hs == 0xae || hs == 0x303d || hs == 0x3030  
                    || hs == 0x2b55 || hs == 0x2b1c || hs == 0x2b1b  
                    || hs == 0x2b50) {  
                return true;  
$scope.isEmojiCharacter=function(substring){
    if(substring){
        var reg = new RegExp("[~#^$@%&amp;!?%*]", 'g');
        if (substring.match(reg)) {
            return ...
// 过滤表情
const filterEmoji = name => {
	return name.replace(/[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122
@描述           根据传入的content,判断是否emoji字符。
@return         True是emoji,False不是True是emoji。
@staticmethod
def isEmoji(content):
    if not content:
        return False
页面首先有一个textarea 输入框 点击发布按钮 还有一个表情图列表
表情图列表其实是每一张图片在代替表情包 在这里我用了六张图片代替六个表情包
点击单独的每个表情包 会把对应得表情包转有属性 添加到输入框 例如[跪了]
然后点击发布的时候 进行正则匹配每个表情包属性 替换成对应得图片路径即可
在这里碰到了一个问题,如何保留文本输入框的换行...
                                    var param = document.getElementById(id).value; 
    var regRule = /\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE4F]/g; 
      if(param.match(regRule)) { 
      param = param.replace(/\uD83C[\uDF00-\uDFFF]|\
                                    最近遇到一个很蛋疼的问题,用户如果在客户端输入表情可能会引起一些报错,在查了一些资料后发现很多坑人的代码,我在总结了之后给出了一个比较完美的版本。
亲测可以判断绝大多数表情。
package com.luo.dtqjh.utils;import org.apache.commons.lang.StringUtils;public class EmojiFilter {
    public stat
reg = /[~#^$@%&!?%*]/gi;
if (reg . test(postdata . Name . trim())) {
    alert("姓名不能含有特殊字符");
} else {
    if (isEmojiCharacter(postdata . Name . trim())) {
        alert("姓名不能含有表情");
    } else 
if(this.value.match(regRule)){
//this.value=this.value.replace(/\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE...