为我糟糕的英语道歉,我正在使用谷歌翻译。
我正在创建一个活动,其中用户必须创建一个新的配置文件。我将编辑文本限制在15个字符以内,并且我希望如果新的配置文件名称包含空格或特殊字符,则会显示警告。作为在线视频游戏
下面的代码帮助我检测空格,但不是特殊字符。
我需要帮助来识别特殊字符并在响应中显示警告。
@Override
public void onClick(View v) {
//Convertimos el contenido en la caja de texto en un String
String nombre = nombreUsuario.getText().toString();
//Si el tamaño del String es igual a 0, que es es lo mismo que dijeramos "Si esta vacio"
if (nombre.length() == 0) {
//Creamos el aviso
Toast aviso = Toast.makeText(getApplicationContext(), "Por favor introduce un nombre de Usuario", Toast.LENGTH_LONG);
aviso.show();
} else if (nombre.contains(" ") | nombre.contains("\\W")) {
Toast aviso = Toast.makeText(getApplicationContext(), "No son permitidos los espacios ni los caracteres especiales", Toast.LENGTH_LONG);
aviso.show();
} else {
nombre = nombreUsuario.getText().toString();
//Conectamos con la base de datos
//Creamos un bojeto y lo iniciamos con new
Plantilla entrada = new Plantilla(CrearUsuarioActivity.this);
entrada.abrir();
//creamos un metodo para escribir en la base de datos (crear entradas)
entrada.crearEntrada(nombre);
entrada.cerrar();
}
}
发布于 2015-05-04 19:34:46
在xml文件的edittext中使用下面这一行,这样它只输入字母和数字;
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
如果您需要动态响应,请为edittext使用textwatcher;
yourEditText.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
// Here you need to check special character, if found then show error message
if (s.toString().contains("%"))
{
// Display error message
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
public void onTextChanged(CharSequence s, int start, int before, int count) {}
});
发布于 2017-02-28 22:11:56
如果你想选择特殊的字符,并且支持的不仅仅是英语字母和数字的集合:
String edit_text_name = YourEditTextName.getText().toString();
Pattern regex = Pattern.compile("[$&+,:;=\\\\?@#|/'<>.^*()%!-]");
if (regex.matcher(edit_text_name).find()) {
Log.d(TAG, "SPECIAL CHARS FOUND");
//handle your action here toast message/ snackbar or something else
return;
}
发布于 2013-04-23 13:06:51
你应该选择Android Saripaar,这是一个非常轻量级和简单的安卓应用程序接口。在您的情况下,您可以在您的EditText实例上执行以下操作...
@TextRule(order = 1, minLength = 15, message = "Enter atleast 15 characters.")
@Regex(order = 2, pattern = "[\\W+]", message = "Special characters are not allowed.")
private TextView yourEditText;
使用此api将引导您以适当的方式在验证过程中进行更多的扭曲。您还可以使用[^a-zA-Z0-9]
而不是[\\W+]
作为规则表达式模式。
希望这能有所帮助。:)
https://stackoverflow.com/questions/16160989
复制相似问题