我想用助手類驗證文本輸入。我開始用一種方法來證明與開頭大寫字母和最多20個字符長度的單一名稱:Android中的正則表達式出現意外結果
package xyz.helper;
import java.util.regex.Pattern;
public abstract class InputValidator {
public static boolean checkSingleName(String string) {
return Pattern.matches("^[A-ZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÑÒÓÔÕÖØÙÚÛÜ]{1}[a-zàáâãäåæçèéêëìíîïñòóôõöøùúûü]{1,19}", string);
}
}
當我在活性試驗例如用「你好」,我回去FALSE和錯誤信息。我的正則表達式是否錯誤?
// Check User entries
private boolean checkEntries() {
boolean validEntry = InputValidator.checkSingleName(title.toString());
if (!validEntry) {
title.setError(getString(R.string.error_occasion));
return false;
}
return true;
}
感謝任何提示
這也行不通。表達式在正則表達式工具中工作正常,雖然 – Cellist
是的,這很奇怪,因爲我也在幾個正則表達式工具中測試了它,並且所有檢索到「真」。你能否爲了以防萬一,嘗試沒有特殊字符? 「^ [AZ] {1} [AZ] {1,19}」,但還是假 – nKn
我試了一下。'^ [AZ] [AZ] {1,19} *' – Cellist