Hola a todos, tengo un problema, quiero que una cadena de texto esté limitado a ciertos caracteres, por ejemplo solo letras, usé la función "string_letters(text)" ´pero este me quita hasta los espacios en blanco por lo que no me sirve, intenté hacerlo caracter por caracter con "string_replace" pero aquí no puedo quitar el salto de linea que el usuario puede dar al teclear "#", básicamente trato de hacer un textbox de una sola linea y sin caracteres extraños. ¿¿Alguna sugerencia?? muchas gracias, saludos :D
Compañero deseas hacer como "un filtro" para el texto que ingresa el usuario?
Podrias poner un ejemplo de lo que deseas realizar.
Si algo así, básicamente quiero hacer un textbox donde solo se puedan escribir letras (no caracteres extraños ni saltos de renglón) como por ejemplo cuando intentas registrarte en alguna página y no te permite poner como usuario caracteres extraños.
Saludos.
NO estoy seguro que sea el método más eficiente, pero se me ocurre esto:
Suponiendo que el texto introducido se guarda en la variable mi_str
[STEP]
var char, ascii, i
for (i = 1; i <= string_length(mi_str); ++i)
{
char = string_char_at(mi_str, i) // Tomar un caracter y ...
ascii = ord(char) // ... obtener el codigo ascii de ese caracter
if (ascii == 32) or ( (ascii > 64) and (ascii < 123) )
validacion = true; //Si el código corresponde a una letra o espacio, se valida
else
validacion = false;
}
if (!validacion)
msg = "Se han introducido caracteres no válidos, por favor corrige el texto"
El código se puede mejorar aun mas, por ejemplo, si se encuentra un caracter no deseado, eliminarlo de la cadena. Aunque esto puede que no quieras que suceda. Lo que si falta es que también verifique caracteres acentuados y la 'ñ', si es que permites que los usuarios los utilicen en el texto. A ver si alguien tiene una opción más simple.
:o, muy bien no se me había ocurrido de esa forma, lo voy a probar, solo que validación debería ser una bandera así como está no funcionará ;), pero muchas gracias eso me da ideas, lo que no se, es si es que funcionará para el carácter "salto de linea" que no veo por que no,
saludos.