Код: Выделить всё
public static bool ContainsEmoji(this string text)
{
Regex rgx = new Regex(@"\p{Cs}");
return rgx.IsMatch(text);
}
Большинство из них обнаруживаются, но некоторые нет.
Вот список ссылок: http://unicode.org/emoji/charts/full-emoji-list.html
Все смайлы вроде бы хороши, но эти специфические смайлы не попадают в регулярное выражение:
1920 U+2614
1921 U +26F1 ⛱ зонтик на земле
1922 U+26A1
1923 U+2744 ❄ снежинка
На клавиатуре они не рядом друг с другом, но в списке идут друг за другом, поэтому я просто предположил, что в этом есть смысл где он начнет не работать в списке смайлов и на самом деле не проверяется. Начиная с 1905 года (смайлики, похожие на погоду), некоторые из них попадают в регулярное выражение, некоторые нет. Кажется, здесь нет никаких правил.
Я не могу позволить себе просто использовать полный ASCII, потому что мне нужно, чтобы люди вводили такие символы, как кириллица, но я не могу принимайте смайлики специально. Я понятия не имею, что делать дальше.
Я читал документацию MSDN о суррогатных парах «старший/младший», но на данном этапе это меня очень сбивает с толку, и Я думаю, что некоторый толчок в правильном направлении будет иметь большое значение.
Большое спасибо за ваше время
Подробнее здесь: https://stackoverflow.com/questions/469 ... all-emojis
Мобильная версия