在路上

 找回密码
 立即注册
在路上 站点首页 学习 查看内容

EditText中只允许输入数字、字母、汉字和-

2016-7-29 15:47| 发布者: zhangjf| 查看: 695| 评论: 0

摘要: EditText中只允许输入数字、字母、汉字和- /** * 匹配正则表达式 * @param str * @return * @throws PatternSyntaxException */public static String stringFilter(String str)throws PatternSyntaxE ...
EditText中只允许输入数字、字母、汉字和-
                   
            
  1. /**
  2. * 匹配正则表达式
  3. * @param str
  4. * @return
  5. * @throws PatternSyntaxException
  6. */
  7. public static String stringFilter(String str)throws PatternSyntaxException {
  8.     // 只允许字母、数字和汉字-
  9.     //String   regEx  =  "[^a-zA-Z0-9-u4E00-u9FA5]";
  10.     String   regEx  =  "[^a-zA-Z0-9\-u4E00-u9FA5]";
  11.     Pattern   p   =   Pattern.compile(regEx);
  12.     Matcher   m   =   p.matcher(str);
  13.     return   m.replaceAll("").trim();
  14. }
复制代码
                                           
                                       
                                       
            
  1. //给EditText添加TextWatcher监听,下面方法中进行判断.
  2. @Override
  3. public void onTextChanged(CharSequence s, int start, int before, int count) {
  4.     String editable = mHouseNumEt.getText().toString();
  5.     String str = stringFilter(editable.toString());
  6.     if(!editable.equals(str)){
  7.         mHouseNumEt.setText(str);
  8.         //设置新的光标所在位置
  9.         mHouseNumEt.setSelection(str.length());
  10.     }
  11. }
复制代码

最新评论

小黑屋|在路上 ( 蜀ICP备15035742号-1 

;

GMT+8, 2025-5-6 12:19

Copyright 2015-2025 djqfx

返回顶部