您的位置:首页 > 移动开发 > Android开发

Android EditText使用正则表达式进行约束

2017-12-25 17:13 113 查看
对EditText进行过滤汉字或者特殊字符

 

1.给EditText添加一个TextWatcher

Pwd.addTextChangedListener(new SearchWather(Pwd));

2.自定义内部类SearchWather

 

class SearchWather implements TextWatcher{

   

   

      //监听改变的文本框  

      private EditText editText;  

  

        

      public SearchWather(EditText editText){  

          this.editText = editText;  

      }  

  

      @Override  

      public void onTextChanged(CharSequence ss, int start, int before, int count) {  

          String editable = editText.getText().toString();  

          String str = stringFilter(editable.toString());

          if(!editable.equals(str)){

              editText.setText(str);

              //设置新的光标所在位置  

              editText.setSelection(str.length());

          }

      }  

  

      @Override  

      public void afterTextChanged(Editable s) {  

  

      }  

      @Override  

      public void beforeTextChanged(CharSequence s, int start, int count,int after) {  

  

      }

  }  

  

  

  public static String stringFilter(String str)throws PatternSyntaxException{     

      // 只允许字母和数字       

      String   regEx  =  "[^a-zA-Z0-9]";                     

      Pattern   p   =   Pattern.compile(regEx);     

      Matcher   m   =   p.matcher(str);     

      return   m.replaceAll("").trim();     

  }

转载:http://blog.sina.com.cn/s/blog_48964b120101amae.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息