900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 判断字符串是否含有emoji表情或者颜文字(非键盘可输入的特殊字符)

判断字符串是否含有emoji表情或者颜文字(非键盘可输入的特殊字符)

时间:2022-11-26 21:27:08

相关推荐

判断字符串是否含有emoji表情或者颜文字(非键盘可输入的特殊字符)

这里写自定义目录标题

判断字符串是否含有emoji表情或者颜文字(非键盘可输入的特殊字符)

判断字符串是否含有emoji表情或者颜文字(非键盘可输入的特殊字符)

最近遇到一个特别有意思的自动化测试小姐姐,测试类似备注之类的字段,要求允许输入中文、英文、中文符号、英文符号、数字。但是不允许输入表情包和颜文字,说是颜文字,其实主要也是针对键盘无法输入的特殊符号进行过滤。

查看资料,无意中发现Pattern.find方法很适合这个校验,所以记录下,这个有趣又合理的需求。

写了一个小test,代码如下:

下面展示一些内联代码片

public static void filterEmoji(String input) {if(input != null) {Pattern emoji = pile("[\ud83c\udc00-\ud83c\udfff]|[\ud83d\udc00-\ud83d\udfff]|[\u2600-\u27ff]|" +"[\ud83e\udd00-\ud83e\uddff]|[\u2300-\u23ff]|[\u2500-\u25ff]|[\u2100-\u21ff]|[\u00a0-\u0fff]|[\u2b00-\u2bff]|[\u2d06]|[\u3030]",Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE ) ;Matcher emojiMatcher = emoji.matcher(input);if (emojiMatcher.find()) {System.out.println("输入字符串:"+input+" 含有表情包"+emojiMatcher.group());}}}

然后用英文字符,中文字符,空格等测试一下

filterEmoji("!@#¥%……&*()——+-={}【】|、:“《》?、。,‘");//中文特殊字符filterEmoji("!@#$%^&*()_+-={}[]\\|:\"<>?/.,'");//英文特殊字符filterEmoji("\uD83E\uDD26\u200D♀️q(≧▽≦q)");filterEmoji("\uD83E\uDD26\u200D♀");filterEmoji("q(≧▽≦q)");filterEmoji("我的CGCH@#¥&@#$%^%^&*()123456");filterEmoji(" ");

测试结果如下:

我尊敬的同事,嫌弃find方法,希望能有直接可以允许输入英文、中文、英文字符、中文字符和数字的正则,确实,我也不是很了解,只能用最笨蛋的拼接方法给他写了一个,如果大家有好方法欢迎留言。

public static void matches(String input) {boolean isValid = input.matches("^[\\uff01\\u0040\\u0023\\uffe5\\u0025\\u2026\\u2026\\u0026\\u002a\\uff08\\uff09\\u\\u\\u002b\\u002d\\u003d\\u007b\\u007d\\u3010\\u3011\\u007c\\u3001\\uff1a\\u201c\\u300a\\u300b\\uff1f\\u3001\\u3002\\uff0c\\u\\u0021\\u0040\\u0023\\u0024\\u0025\\u005e\\u0026\\u002a\\u0028\\u0029\\u005f\\u002b\\u002d\\u003d\\u007b\\u007d\\u005b\\u005d\\u005c\\u007c\\u003a\\u0022\\u003c\\u003e\\u003f\\u002f\\u002e\\u002c\\u0027\\u4E00-\\u9FFFa-zA-Z0-9\\s\\p{P}]+$");if (isValid) {System.out.println("输入符合校验规则");} else {System.out.println("输入不符合校验规则");}}

然后测试一下:

String input1="!@#¥%……&*()——+-={}【】|、:“《》?、。,‘";//中文特殊字符String input2="!@#$%^&*()_+-={}[]\\|:\"<>?/.,'";//英文特殊字符String input3="\uD83E\uDD26\u200D♀️q(≧▽≦q)";String input4="\uD83E\uDD26\u200D♀";String input5="q(≧▽≦q)";String input6="我的CGCH@#¥&@#$%^%^&*()123456";//中文、英文、中文特殊字符、英文特殊字符、数字String input7=" ";matches(input1);matches(input2);matches(input3);matches(input4);matches(input5);matches(input6);matches(input7);

测试结果如下:

如果大家有好方法欢迎留言!如果大家有好方法欢迎留言!如果大家有好方法欢迎留言!

重要的事情说三遍!!!

加油!愿我们都要美好的未来!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。