Comparar caracteres de una cadena

21/11/2006 - 15:49 por Alan | Informe spam
Holas,
Quiero validar una cadena, la cual solo debe mandar datos numéricos.
Como puedo comprobar que una cadena tiene o no valores alfabéticos (o de
algún otro tipo que no sean númericos).
La idea es la sgte:
string strvaloresNoAceptados = "abcdefghijklmnñopqrsdtuvwxyz-_.,:{}[]?¿";
string strvalorIngresado = this.txtValor.text;
if(FuncValidaValoresNoaceptados(strvalorIngresado,strvaloresNoAceptados ))
MessageBox.show("Los valores de la cadena son permitidos");
else
MessageBox.show("Los valores de la cadena NO son permitidos");

Gracias por la ayuda...
 

Leer las respuestas

#1 Alberto Poblacion
21/11/2006 - 16:06 | Informe spam
"Alan" wrote in message
news:
Quiero validar una cadena, la cual solo debe mandar datos numéricos.
Como puedo comprobar que una cadena tiene o no valores alfabéticos (o de
algún otro tipo que no sean númericos).
La idea es la sgte:
string strvaloresNoAceptados = "abcdefghijklmnñopqrsdtuvwxyz-_.,:{}[]?¿";
string strvalorIngresado = this.txtValor.text;
if(FuncValidaValoresNoaceptados(strvalorIngresado,strvaloresNoAceptados ))
MessageBox.show("Los valores de la cadena son permitidos");
else
MessageBox.show("Los valores de la cadena NO son permitidos");



Algo parecido a lo siguiente (tecleado de memoria, no lo he probado):

using System.Text.RegularExpressions;

private bool
FuncValidaValoresNoaceptados(strvalorIngresado,strvaloresNoAceptados)
{
RegEx re = new RegEx("^[^"+strvaloresNoAceptados+"]*$");
return re.IsMatch(strvalorIngresado);
}

Nota: Hay un par de caracteres que tienen significado especial para la
expresión regular, por lo que debes "escaparlos" con "\" en la cadena de
caracters no aceptados: strvaloresNoAceptados =
@"abcdefghijklmnñopqrsdtuvwxyz\-_.,:{}\[]?¿";

De todas formas, si lo que quieres es que solo haya caracteres numéricos, en
lugar de poner los "no aceptados", es mejor poner los aceptados ("\d" =
"digit"):

RegEx re = new RegEx(@"^\d*$");

y el resto igual.

Preguntas similares