2010-11-15 50 views
4

我想讓用戶只能根據我的android應用程序中的正則表達式鍵入某些字符。我如何實現它?只允許基於EditText中的正則表達式選擇字符

+0

[Android:我怎樣才能驗證EditText輸入?](http://stackoverflow.com/questions/2763022/android-how-can-i-validate-edittext-input)。另見[這個問題](http://stackoverflow.com/questions/1151664)。 – 2010-11-15 01:37:12

+0

謝謝@Matt Ball – 2010-11-15 04:04:08

+0

基於正則表達式?你的意思只是允許的字符列表嗎?這不是一個正則表達式。 – Falmarri 2010-11-15 16:00:27

回答

9

作爲@Matt Ball建議使用TextWatcher

@Override 
public void afterTextChanged(Editable s) { 
     String text = s.toString(); 
     int length = text.length(); 

     if(length > 0 && !Pattern.matches(PATTERN, text)) { 
      s.delete(length - 1, length); 
     } 
} 

編輯 雖然TextWatcher作品,這將是清潔劑使用InputFilter。檢查這example

+0

這幫助了我很多,謝謝我剛剛遇到問題,當用戶刪除了一個字符,並且它沒有進入PATTERN崩潰因爲一個越界,所以你可以使用它(對我的應用程序進行一些修改)如果(text.length()> 0),則返回int length = text.length();如果(!getPattern()。equals(「」))if(!Pattern.matches(getPattern(),text)){sdkf } } } – magorich 2016-01-19 01:18:08

0

試試這個:如果要輸入的字符匹配/ [a-zA-Z0-9 {在這裏插入有效的字符} /然後允許,否則不要。

相關問題