00001 00002 var rsAstralRange = '\\ud800-\\udfff', 00003 rsComboMarksRange = '\\u0300-\\u036f', 00004 reComboHalfMarksRange = '\\ufe20-\\ufe2f', 00005 rsComboSymbolsRange = '\\u20d0-\\u20ff', 00006 rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, 00007 rsVarRange = '\\ufe0e\\ufe0f'; 00008 00010 var rsAstral = '[' + rsAstralRange + ']', 00011 rsCombo = '[' + rsComboRange + ']', 00012 rsFitz = '\\ud83c[\\udffb-\\udfff]', 00013 rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')', 00014 rsNonAstral = '[^' + rsAstralRange + ']', 00015 rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}', 00016 rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]', 00017 rsZWJ = '\\u200d'; 00018 00020 var reOptMod = rsModifier + '?', 00021 rsOptVar = '[' + rsVarRange + ']?', 00022 rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*', 00023 rsSeq = rsOptVar + reOptMod + rsOptJoin, 00024 rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')'; 00025 00027 var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g'); 00028 00036 function unicodeToArray(string) { 00037 return string.match(reUnicode) || []; 00038 } 00039 00040 module.exports = unicodeToArray;