c# - How to restrict Emoji range u2600-u26FF for a text box -


i restrict emojis in text box of range u2600-u26ff using regex.

i tried this, fails.

private static readonly regex regexemoji = new regex(@"[\u1f600-\u1f6ff]|[\u2600-\u26ff]"); 

i restric user adding emojis in wp8

thanks in advance.

because .net doesn't support surrogated pairs in regexes. have decompose them manually. make clear, char in .net 16 bits, 1f600 needs 2 char. solution decompose them "manually".

private static readonly regex regexemoji = new regex(@"\ud83d[\ude00-\udeff]|[\u2600-\u26ff]"); 

i hope have decomposed them correctly.

i used site: http://www.trigeminal.com/16to32andback.asp

to decompose low , high range \u1f600 == \ud83d \ude00, \u1f6ff == \ud83d \udeff. first part of surrogate pair "fixed": \ud83d, other range.

example code (http://ideone.com/0o6qbt)

string str = "hello world 😀🙏☀⛿"; // 🌀 1f600 grinning face, 1f64f person folded hands, 2600 black sun rays, 26ff white flag horizontal middle black stripe regex regexemoji = new regex(@"\ud83d[\ude00-\udeff]|[\u2600-\u26ff]"); matchcollection matches = regexemoji.matches(str); int count = matches.count; console.writeline(count); 

if want range 1f300-1f6ff... it's d83c df00 d83c dfff , d83d udc00 d83d deff

string str = "hello world 🌀😀🙏☀⛿"; // 1f300 cyclone, 1f600 grinning face, 1f64f person folded hands, 2600 black sun rays, 26ff white flag horizontal middle black stripe regex regexemoji = new regex(@"\ud83c[\udf00-\udfff]|\ud83d[\udc00-\udeff]|[\u2600-\u26ff]"); 

Comments

Popular posts from this blog

image - ClassNotFoundException when add a prebuilt apk into system.img in android -

I need to import mysql 5.1 to 5.5? -

Java, Hibernate, MySQL - store UTC date-time -