android edittext 正则限制,Android EditText 使用正则表达式进行输入过滤
近期在一個項目中用到修改密碼這個功能,不過對于密碼的輸入,我們不希望用戶輸入漢字或者特殊字符,所以我們需要對用戶進行輸入的輸入框進行過濾,下面是一個對EditText進行過濾的小代碼片段:
1.首先給Edittext 添加一個TextWatcher,當然這個TextWatcher我們是要自己寫的,核心功能也在這個類中
mOldPwdET.addTextChangedListener(new SearchWather(mOldPwdET ));
2.下面就是這個自定義的TextWatcher
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();
}
希望大家有什么更好的辦法,可以分享一下,請大家多多指教。
總結
以上是生活随笔為你收集整理的android edittext 正则限制,Android EditText 使用正则表达式进行输入过滤的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言求a1到an的和,C语言菜鸟基础教
- 下一篇: java支持多线程吗_Java多线程之一