我有一个onTextChangedListener
监视 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 是否包含这样的字符,只能替换它们。有解决方法吗?