web-dev-qa-db-fra.com

Vérifier les caractères spéciaux (/ * - + _ @ & $ #%) dans une chaîne?

Comment vérifier une chaîne pour m'assurer qu'elle ne contient que des chiffres, des lettres ou des espaces?

37
MrM

La façon la plus simple d’utiliser une expression régulière:

Expression régulière pour les caractères alphanumériques et les traits de soulignement

Utiliser des expressions régulières en .net:

http://www.regular-expressions.info/dotnet.html

Expression régulière MSDN

Regex.IsMatch

var regexItem = new Regex("^[a-zA-Z0-9 ]*$");

if(regexItem.IsMatch(YOUR_STRING)){..}
63
kemiller2002

Simple:

function HasSpecialChars(string yourString)
{
    return yourString.Any( ch => ! Char.IsLetterOrDigit( ch ) )
}
60
prmph
string s = @"$KUH% I*$)OFNlkfn$";
var withoutSpecial = new string(s.Where(c => Char.IsLetterOrDigit(c) 
                                            || Char.IsWhiteSpace(c)).ToArray());

if (s != withoutSpecial)
{
    Console.WriteLine("String contains special chars");
}
14
nan

Essayez de cette façon.

public static bool hasSpecialChar(string input)
    {
        string specialChar = @"\|!#$%&/()=?»«@£§€{}.-;'<>_,";
        foreach (var item in specialChar)
        {
            if (input.Contains(item)) return true;
        }

        return false;
    }
11
Emanuel Faisca
String test_string = "tesintg#$234524@#";
if (System.Text.RegularExpressions.Regex.IsMatch(test_string, "^[a-zA-Z0-9\x20]+$"))
{
  // Good-to-go
}

Un exemple peut être trouvé ici: http://ideone.com/B1HxA

6
Brad Christie

Si la liste des caractères acceptables est assez petite, vous pouvez utiliser une expression régulière comme celle-ci:

Regex.IsMatch(items, "[a-z0-9 ]+", RegexOptions.IgnoreCase);

L’expression régulière utilisée ici recherche tout caractère compris entre 0 et 9, y compris un espace (entre les crochets []), un ou plusieurs de ces caractères (le signe + - vous pouvez utiliser un * pour 0 ou plus). La dernière option indique à l'analyseur d'expression régulière d'ignorer la casse.

Cela échouera sur tout ce qui n'est pas une lettre, un chiffre ou un espace. Pour ajouter plus de caractères à la liste bénie, ajoutez-la entre crochets.

4
Berin Loritsch

Utilisez l'expression régulière ci-dessous pour valider une chaîne afin de vous assurer qu'elle contient uniquement des chiffres, des lettres ou des espaces:

[a-zA-Z0-9 ]
3
Chandu