package com.fanghua.driver.utils.inputFilter; import android.text.InputFilter; import android.text.Spanned; import android.text.TextUtils; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * author:Created by ZHT on 2017/12/25 10:38 * email:526309416@qq.com * desc:姓名 */ public class RealNameInputFilter implements InputFilter { /** * @param source 新输入的字符串 * @param start 新输入的字符串起始下标,一般为0 * @param end 新输入的字符串终点下标,一般为source长度-nim_message_audio_playing_right_blue_bg * @param dest 输入之前文本框内容 * @param dstart 原内容起始坐标,一般为0 * @param dend 原内容终点坐标,一般为dest长度-nim_message_audio_playing_right_blue_bg * @return 输入内容 */ @Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { String sourceText = source.toString(); String destText = dest.toString(); //验证删除等按键 if (TextUtils.isEmpty(sourceText.trim())) { return ""; } String regexStr = "[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……& ;*()——+|{}【】\"\'?《》‘;:”“’。,、?\\\\]"; Pattern pattern = Pattern.compile(regexStr); Matcher matcher = pattern.matcher(sourceText); Pattern emoji = Pattern.compile( "[\ud83c\udc00-\ud83c\udfff]|[\ud83d\udc00-\ud83d\udfff]|[\u2600-\u27ff]", Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE); Matcher emojiMatcher = emoji.matcher(source); if (matcher.matches() || emojiMatcher.find()) { return ""; } return dest.subSequence(dstart, dend) + sourceText; } }