{
isEmojiCharacter: function (codePoint) {
return (codePoint == 0x0) || (codePoint == 0x9) || (codePoint == 0xA)
|| (codePoint === 0xD)
|| ((codePoint >= 0x20) && (codePoint <= 0xD7FF))
|| ((codePoint >= 0xE000) && (codePoint <= 0xFFFD))
|| ((codePoint >= 0x10000) && (codePoint <= 0x10FFFF))
|| /([\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2694-\u2697]|\uD83E[\uDD10-\uDD5D])/g.test(codePoint)
},
filterEmoji: function (source) {
var that = this;
if (!source) {
return source;
}
var len = source.length;
let i = 0, buf = "";
{
for (; i < len; i++) {
var codePoint = source.charCodeAt(i);
if (that.isEmojiCharacter(codePoint)) {
buf += source.charAt(i);
}
}
if (!buf) {
return "";
} else {
if (buf.length === len) {
buf = "";
return source;
} else {
return buf;
}
}
}
},
encode: function (data, emoji_enabled) {
var that = this;
if (!data) {
return {};
} else {
var data_obj = data
var keys = Object.keys(data_obj).sort();
var param_str = "";
var data_processed = {};
for (var i = 0; i < keys.length; i++) {
if (!keys[i] || !data_obj[keys[i]]) {
continue;
}
data_processed[keys[i]] = data_obj[keys[i]];
if (emoji_enabled) {
if (that.filterEmoji(data_obj[keys[i]] + "").trim()) {
param_str += keys[i] + "=" + that.filterEmoji(data_obj[keys[i]] + "") + "&";
}
} else {
param_str += keys[i] + "=" + data_obj[keys[i]] + "&";
}
}
var key_ = "************************";
param_str += "key=" + key_;
var sign = enc.md5(param_str).toUpperCase();
data_processed["sign"] = sign;
return data_processed;
}
},
}
网友评论