0
我有一個onTextChangedListener
它觀察EditText是否包含任何「非單詞」字符,如此;使用.contains和\ W驗證對話框EditText
input.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (input.getText().toString().contains("\\W")) {
input.setError("Error");
}
else{
}
}});
但是,我的代碼似乎並沒有將("\\W")
識別爲非單詞字符。我用它來檢查其他EditTexts,但在這些情況下,它只是替換任何非單詞字符而沒有提示哪些工作正常;
String locvalidated = textLocation.getText().toString().replaceAll("\\W", "-");
這似乎我不能使用\\W
來檢查,如果一個EditText含有此類字符,只能更換。有沒有解決方法?
乾杯,最好我想在這種情況下使用'setError'但它似乎我可能需要訴諸正如你所描述的,在「無效」字符上執行'replaceAll'。 –
你可以使用'setError()'。我的回答只是你的'String.contains(「\\ W」)''的一種解決方法。 – flx
只是修改了使用你的代碼的答案。 – flx