giovedì 7 ottobre 2010

IsNumeric ( regular Expression )...

Avevo già affrontato questo simpatico problema... come comprendere se un valore in una stringa, è o non è un numero.

Al tempo mi ero risolto il problema (non molto elegantemente) con un try catch dove nel try avevo bene pensato di forzare il valore letto in un int in caso di Exception... non stavo trattando un numero.

Bene l'idea era valida, e funzionante ma non del tutto efficace..

Ad oggi ecco due nuove Idee... testate e garantite basate sulle regular expression.

public bool isNumeric (string value)
{
Regex verifier = new Regex( @"^(\+|-)?\d+(.|,)*\d+$");

return verifier.IsMatch(value);
}

public bool isNumeric (string value)
{
Regex verifier = new Regex(@"[0-9](.|,)*[0-9]$");

return verifier.IsMatch(value);
}

Nel primo caso si considera anche la possibilità di avere un + o un - come intestazione del numero, il secondo no.

Entrambi funzionano, ma è necessario includere la System.Text.RegularExpressions...

Nessun commento: