Опция 1
Может быть,
[\ u {1f300} - \ u {1f5ff} \ u {1f900} - \ u {1f9ff} \ u {1f600}- \ и {1f64f} \ и {1f680} - \ и {1f6ff} \ и {2600} - \ и {26ff} \ и {2700} - \ и {27bf} \ и {1f1e6} - \ и {1f1ff}\ и {1f191} - \ и {1f251} \ и {1f004} \ и {1f0cf} \ и {1f170} - \ и {1f171} \ и {1f17e} - \ и {1f17f} \ и {1f18e} \ и{3030} \ и {2B50} \ и {2b55} \ и {2934} - \ и {2935} \ и {2b05} - \ и {2b07} \ и {2b1b} - \ и {2b1c} \ и {3297} \ и {3299} \ и {303d} \ и {00a9} \ и {00ae} \ и {2122} \ и {23f3} \ и {24c2} \ и {23e9} - \ и {23ef} \ и {25b6} \ u {23f8} - \ u {23fa}]
может работать нормально для ваших желаемых смайликов.
Опция 2
В противном случае вы можете отменить эти нежелательные символы, используя классы символов, такие как:
[these unicode ranges &&[^these unicodes]]
, который станет довольно сложным, но все же возможным.
Опция 3
Используя эту опцию, вы, скорее всего, сможете решить свою проблему гораздо проще. Я полагаю, ваша проблема в том, что эти нежелательные знаки препинания уже входят в число желаемых юникодов. Проверьте, так ли это. Например, в
[\u100-\u200]
вы можете иметь \u150
и \u175
как нежелательные символы, которые вы хотите, чтобы они были удалены из желаемых диапазонов юникодов, которые у вас уже есть.
Затем вы можете просто удалить их из диапазона, например, с помощью:
[\u100-\u149\u151-\u174\u176-\u200]
, и настолько просто, что проблема будет решена.
Источник
регулярные выражения смайликов javascript unicode