mirror of
https://github.com/MathMan05/Fermi.git
synced 2026-10-06 07:47:35 +00:00
better emoji reconition
This commit is contained in:
+18
-4
@@ -80,11 +80,25 @@ class MarkDown {
|
||||
}
|
||||
const span = document.createElement("span");
|
||||
span.classList.add("md-emoji", "bigemojiUni");
|
||||
|
||||
const matched = str.match(/^((<a?:[A-Za-z\d_]*:\d*>|([^\da-zA-Z <>])) *){1,3}$/u);
|
||||
if (matched) {
|
||||
const seg = new Intl.Segmenter("en-US", {granularity: "grapheme"});
|
||||
const matchReg = !!str.match(/^(((<a?:[A-Za-z\d_]*:\d*>|([^\da-zA-Z <>]+)) *))$/gu);
|
||||
const matched = matchReg
|
||||
? Array.from(str.matchAll(/((<a?:[A-Za-z\d_]*:\d*>|([^\da-zA-Z <>]+)) *)/gu) || []).flatMap(
|
||||
(match) => {
|
||||
if (match[0].match(/^<a?:[A-Za-z\d_]*:\d*>$/u)) {
|
||||
return match[0];
|
||||
} else if (match[0].match(/[^\da-zA-Z <>]+$/gu)) {
|
||||
return seg.segment(match[0]);
|
||||
} else if (match[0].match(/^\s*$/)) {
|
||||
console.log(match);
|
||||
return [];
|
||||
} else return [..."aaaa"];
|
||||
},
|
||||
)
|
||||
: [..."aaaa"];
|
||||
if (matched.length <= 3) {
|
||||
const map = [...str.matchAll(/<a?:[A-Za-z\d_]*:\d*>|[^\da-zA-Z <>]+/gu).map(([_]) => _)];
|
||||
const seg = new Intl.Segmenter("en-US", {granularity: "grapheme"});
|
||||
|
||||
const invalid = map.find((str) => {
|
||||
if (str.length > 10) return false;
|
||||
if (Array.from(seg.segment(str)).length !== 1) return true;
|
||||
|
||||
Reference in New Issue
Block a user