UNPKG

2.45 kBJavaScriptView Raw
1var emojiToUnicode = function (emoji) {
2 var backStr = "";
3 if(emoji&&emoji.length>0){
4 for(var char of emoji){
5 var index = char.codePointAt(0);
6 if(index>65535){
7 var h = '\\u'+(Math.floor((index - 0x10000) / 0x400) + 0xD800).toString(16);
8 var c = '\\u'+((index - 0x10000) % 0x400 + 0xDC00).toString(16);
9 backStr = backStr + h + c;
10 }else{
11 backStr = backStr + char;
12 }
13 }
14 console.log(backStr);
15 }
16 return backStr
17};
18
19var toSurrogatePairs = function (index) {
20 var h = '\\u'+(Math.floor((index - 0x10000) / 0x400) + 0xD800).toString(16);
21 var c = '\\u'+((index - 0x10000) % 0x400 + 0xDC00).toString(16);
22 console.log(h+c);
23 return h+c
24};
25
26/*! https://mths.be/fromcodepoint v0.2.1 by @mathias */
27var fromcodepoint = function () {
28 var stringFromCharCode = String.fromCharCode;
29 var floor = Math.floor;
30 var fromCodePoint = function(_) {
31 var MAX_SIZE = 0x4000;
32 var codeUnits = [];
33 var highSurrogate;
34 var lowSurrogate;
35 var index = -1;
36 var length = arguments.length;
37 if (!length) {
38 return '';
39 }
40 var result = '';
41 while (++index < length) {
42 var codePoint = Number(arguments[index]);
43 if (
44 !isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity`
45 codePoint < 0 || // not a valid Unicode code point
46 codePoint > 0x10FFFF || // not a valid Unicode code point
47 floor(codePoint) != codePoint // not an integer
48 ) {
49 throw RangeError('Invalid code point: ' + codePoint);
50 }
51 if (codePoint <= 0xFFFF) { // BMP code point
52 codeUnits.push(codePoint);
53 } else { // Astral code point; split in surrogate halves
54 // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
55 codePoint -= 0x10000;
56 highSurrogate = (codePoint >> 10) + 0xD800;
57 lowSurrogate = (codePoint % 0x400) + 0xDC00;
58 codeUnits.push(highSurrogate, lowSurrogate);
59 }
60 if (index + 1 == length || codeUnits.length > MAX_SIZE) {
61 result += stringFromCharCode.apply(null, codeUnits);
62 codeUnits.length = 0;
63 }
64 }
65 return result;
66 };
67 String.prototype.fromCodePoint = fromCodePoint;
68};
69
70var umoji = {
71 emojiToUnicode:emojiToUnicode,
72 toSurrogatePairs:toSurrogatePairs,
73 fromcodepoint:fromcodepoint
74};
75var umoji_1 = umoji;
76
77export default umoji_1;