数通智联化工云平台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

34 lines
1.2 KiB

'use strict';
const emoji_cleanup = require('../cleanup.cjs');
const emoji_convert = require('../convert.cjs');
const emoji_test_variations = require('../test/variations.cjs');
const emoji_regex_tree = require('./tree.cjs');
require('../data.cjs');
require('../format.cjs');
require('./base.cjs');
require('./numbers.cjs');
require('./similar.cjs');
function createOptimisedRegexForEmojiSequences(sequences) {
sequences = sequences.map((item) => emoji_convert.convertEmojiSequenceToUTF32(item));
const tree = emoji_regex_tree.createEmojisTree(sequences);
const regex = emoji_regex_tree.parseEmojiTree(tree);
return regex.regex;
}
function createOptimisedRegex(emojis) {
let sequences = emojis.map(
(item) => typeof item === "string" ? emoji_cleanup.getSequenceFromEmojiStringOrKeyword(item) : item
);
sequences = emoji_test_variations.getQualifiedEmojiVariations(
sequences.map((sequence) => {
return {
sequence
};
})
).map((item) => item.sequence);
return createOptimisedRegexForEmojiSequences(sequences);
}
exports.createOptimisedRegex = createOptimisedRegex;
exports.createOptimisedRegexForEmojiSequences = createOptimisedRegexForEmojiSequences;