web-dev-qa-db-fra.com

Expression régulière pour un nombre à 10 chiffres sans caractères spéciaux

Quelle est l'expression régulière d'un nombre numérique à 10 chiffres (pas de caractères spéciaux ni de décimales).

30
Grasshopper

Utilisez cette expression régulière pour ne faire correspondre que dix chiffres:

@"^\d{10}$"

Pour rechercher une séquence de dix chiffres consécutifs n'importe où dans une chaîne, utilisez:

@"\d{10}"

Notez que cela trouvera également les 10 premiers chiffres d'un nombre à 11 chiffres. Pour rechercher n'importe où dans la chaîne pour exactement 10 chiffres consécutifs et pas plus, vous pouvez utiliser un négatif lookarounds :

@"(?<!\d)\d{10}(?!\d)"
75
Mark Byers

Utilisez le modèle suivant.

^\d{10}$
6
A_Nabelsi
\d{10}

Je crois que ça devrait le faire

4
m.edmondson

Un exemple de mise en œuvre:

public bool ValidateSocialSecNumber(string socialSecNumber)
{
    //Accepts only 10 digits, no more no less. (Like Mike's answer)
    Regex pattern = new Regex(@"(?<!\d)\d{10}(?!\d)");

    if(pattern.isMatch(socialSecNumber))
    {
        //Do something
        return true;
    }
    else
    {
        return false;
    }
}

Vous auriez également pu le faire d'une autre manière, par ex. en utilisant Match puis en enroulant un bloc try-catch autour de la correspondance de modèle. Cependant, si une mauvaise entrée est donnée assez souvent, il est assez coûteux de lever une exception. Ainsi, je préfère la méthode ci-dessus, dans des cas simples au moins.

3
DSF

Utilisez ceci:

\d{10}

J'espère que ça aide.

3
dzendras