2
我有一個簡單的EditText,用戶可以插入三個用逗號分隔的值。例如,我可以使用以下模板:如何在Android中驗證用戶輸入?
value1, value2, value3
其中value1,value2是double類型,value3是整數。
如何驗證用戶是否已根據此模板輸入文本?
我有一個簡單的EditText,用戶可以插入三個用逗號分隔的值。例如,我可以使用以下模板:如何在Android中驗證用戶輸入?
value1, value2, value3
其中value1,value2是double類型,value3是整數。
如何驗證用戶是否已根據此模板輸入文本?
使用正則表達式Matcher
。
final String DOUBLE = "\\d+(?:\\.\\d+)?";
final Pattern PATTERN = Pattern.compile(DOUBLE + ", " + DOUBLE + ", \\d+");
Matcher matcher = PATTERN.matcher(textView.getText().toString());
if (!matcher.matches()) {
// invalid input
}
不要預見使用偵聽器來捕捉文本更改的事件。 [http://developer.android.com/reference/android/widget/TextView.html#addTextChangedListener(android.text.TextWatcher)] – 2012-07-08 10:58:23
我不知道爲什麼,但應該加一個更正: final String DOUBLE = 「\\ d +(?:\\ d +)?」; final Pattern Pattern = Pattern.compile(DOUBLE +「,」+ DOUBLE +「,\\ d +」); 你能改正,我會接受答案嗎? – Yury 2012-07-08 14:02:16
@Yury傻了,你說得對。在一個Java String文字中,爲了得到一個黑斜線,我們需要將其轉義。所以我們需要兩個反斜槓。更正了我的答案。 – 2012-07-08 17:32:56