@@ -90,23 +90,48 @@ export class EyeeyeCatcherCardComponent implements OnInit {
9090 }
9191 }
9292
93+ // checkIsEmoji() {
94+ // let title = this.g.CALLOUT_TITLE_PLACEHOLDER.trim();
95+ // if (this.g.calloutTitle && this.g.calloutTitle !== '') {
96+ // title = this.g.calloutTitle.trim();
97+ // }
98+ // this.title = title;
99+ // const regex = emojiRegex();
100+ // let match: any;
101+ // // this.logger.debug('[EYEEYE-CATCHER-CARD]-->regex, emojiRegex', regex, emojiRegex)
102+ // while (match = regex.exec(title)) {
103+ // const emoji = match[0];
104+ // this.logger.debug('[EYEEYE-CATCHER-CARD]--> match', match)
105+ // if (title.indexOf(emoji) === 0) {
106+ // this.title = title.replace(emoji, '');
107+ // this.emoticon = emoji;
108+ // }
109+ // break;
110+ // }
111+ // }
112+
113+
93114 checkIsEmoji ( ) {
94115 let title = this . g . CALLOUT_TITLE_PLACEHOLDER . trim ( ) ;
95116 if ( this . g . calloutTitle && this . g . calloutTitle !== '' ) {
96117 title = this . g . calloutTitle . trim ( ) ;
97118 }
119+
120+ // Reset emoticon
121+ this . emoticon = null ;
98122 this . title = title ;
99- const regex = emojiRegex ( ) ;
100- let match : any ;
101- // this.logger.debug('[EYEEYE-CATCHER-CARD]-->regex, emojiRegex', regex, emojiRegex)
102- while ( match = regex . exec ( title ) ) {
123+
124+ // Regex per emoji Unicode (compatibile)
125+ const regex = / (?: [ \u2700 - \u27bf ] | (?: \ud83c [ \udde6 - \uddff ] ) { 2 } | [ \ud800 - \udbff ] [ \udc00 - \udfff ] | [ \u0023 - \u0039 ] \ufe0f ? \u20e3 | \u3299 | \u3297 | \u303d | \u3030 | \u24c2 | \ud83c [ \udd70 - \udd71 ] | \ud83c [ \udd7e - \udd7f ] | \ud83c \udd8e | \ud83c [ \udd91 - \udd9a ] | \ud83c [ \udde6 - \uddff ] | \ud83c [ \ude01 - \ude02 ] | \ud83c \ude1a | \ud83c \ude2f | \ud83c [ \ude32 - \ude3a ] | \ud83c [ \ude50 - \ude51 ] | \u203c | \u2049 | [ \u25aa - \u25ab ] | \u25b6 | \u25c0 | [ \u25fb - \u25fe ] | \u00a9 | \u00ae | \u2122 | \u2139 | \ud83c \udc04 | [ \u2600 - \u26FF ] | \u2b05 | \u2b06 | \u2b07 | \u2b1b | \u2b1c | \u2b50 | \u2b55 | \u231a | \u231b | \u2328 | \u23cf | [ \u23e9 - \u23f3 ] | [ \u23f8 - \u23fa ] | \ud83c \udccf | \u2934 | \u2935 | [ \u2190 - \u21ff ] ) / ;
126+ const match = title . match ( regex ) ;
127+
128+ if ( match ) {
103129 const emoji = match [ 0 ] ;
104- this . logger . debug ( '[EYEEYE-CATCHER-CARD]--> match' , match )
105- if ( title . indexOf ( emoji ) === 0 ) {
106- this . title = title . replace ( emoji , '' ) ;
107- this . emoticon = emoji ;
108- }
109- break ;
130+ this . logger . debug ( '[EYEEYE-CATCHER-CARD]--> emoji trovata:' , emoji ) ;
131+
132+ // Estrai la prima emoji trovata e rimuovila dal testo
133+ this . title = title . replace ( emoji , '' ) . trim ( ) ;
134+ this . emoticon = emoji ;
110135 }
111136 }
112137
@@ -164,6 +189,3 @@ export class EyeeyeCatcherCardComponent implements OnInit {
164189}
165190
166191
167- export default function emojiRegex ( ) : RegExp {
168- return / (?: \uD83C [ \uDFFB - \uDFFF ] ) | (?: [ \u2700 - \u27BF ] ) | (?: \u24C2 ) | (?: [ \u1F68 0 - \u1F6F F ] ) / g;
169- }
0 commit comments