IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Expression régulière pour un nom


Sujet :

ASP.NET

  1. #1
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 852
    Points : 52 992
    Points
    52 992
    Billets dans le blog
    6
    Par défaut Expression régulière pour un nom
    Bonjour, je cherche à savoir si quelqu'un pourrait m'aider pour créer une expression regulière pour valider des noms de personnes, avec les restrictions suivantes :
    • composé de lettre majuscules ou minuscules accentuées ou non et des caractères - et ' (tiret et apostrophe).
    • ne pas commencer par un tiret ou une apostrophe


    A +

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 60
    Points : 71
    Points
    71
    Par défaut
    Salut,
    Tu connais le logiciel Expresso (gratos) ?
    Il devrait t'aider à composer et vérifier ton expression régulière facilement.

  3. #3
    Membre averti
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2011
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2011
    Messages : 456
    Points : 386
    Points
    386
    Par défaut
    pour valider que pas le commencement par tirer (-) ou apostrophe(')
    j'utilise variable booleane


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    bool i;
    i = s.StartsWith("-");
    pour que ta test doit etre juste il faut que le contenue de "i" est false.
    meme chose pour apostrophe

    pour majuscules ou minuscules
    mon algo est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    cmaj=0;cmin=0;
     for (i = 1; i < s.Length; i++)
                {
                    if (char.IsLower(s[i]))
                            cmin++;
                    if(char.IsUpper(s[i]))
                         cmaj++;
                }
    j'espere que tu m'a compris mon idée

  4. #4
    Rédacteur

    Avatar de Jean-Michel Ormes
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    1 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 838
    Points : 4 574
    Points
    4 574
    Par défaut
    Je partirais sur un truc du genre dans une RegularExpressionValidator :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ^[a-zA-Z]([-'a-zA-Z]?)*$

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 852
    Points : 52 992
    Points
    52 992
    Billets dans le blog
    6
    Par défaut
    Impossible, car je dois coder uniquement l'expression régulière : cette expression doit figurer dans un appel de fonction CLR depuis SQL Server.

    A +

    Citation Envoyé par genius4evers Voir le message
    pour valider que pas le commencement par tirer (-) ou apostrophe(')
    j'utilise variable booleane


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    bool i;
    i = s.StartsWith("-");
    pour que ta test doit etre juste il faut que le contenue de "i" est false.
    meme chose pour apostrophe

    pour majuscules ou minuscules
    mon algo est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    cmaj=0;cmin=0;
     for (i = 1; i < s.Length; i++)
                {
                    if (char.IsLower(s[i]))
                            cmin++;
                    if(char.IsUpper(s[i]))
                         cmaj++;
                }
    j'espere que tu m'a compris mon idée

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 852
    Points : 52 992
    Points
    52 992
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par Jean-Michel Ormes Voir le message
    Je partirais sur un truc du genre dans une RegularExpressionValidator :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ^[a-zA-Z]([-'a-zA-Z]?)*$
    J'ai fais cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^[a-zA-Z][a-zA-Z\-'' ]*[a-zA-Z]$
    ça me parait pas mal !!!!

    A +

  7. #7
    Rédacteur

    Avatar de Jean-Michel Ormes
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    1 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 838
    Points : 4 574
    Points
    4 574
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    J'ai fais cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^[a-zA-Z][a-zA-Z\-'' ]*[a-zA-Z]$
    ça me parait pas mal !!!!

    A +
    Bonjour,

    C'est pas mal en effet mais si tu ne tapes qu'une seule lettre, ça ne marche pas.

  8. #8
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut
    Et c'est là que doit normalement intervenir StormiMon qui, de ce que j'ai pu voir ici, est THE boss de la regexp.

    SQLPro, essayez peut-être de lui envoyer un MP.

  9. #9
    Membre averti
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2011
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2011
    Messages : 456
    Points : 386
    Points
    386
    Par défaut
    tu veux faire la validation du SQL server sans utilisant C#?
    je ne sais s'il faut penser au function dans la database , ou procedure ....
    TSQL

  10. #10
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 852
    Points : 52 992
    Points
    52 992
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par Jean-Michel Ormes Voir le message
    Bonjour,

    C'est pas mal en effet mais si tu ne tapes qu'une seule lettre, ça ne marche pas.
    Un nom de personne d'une seule lettre, ça n'existe pas !

    A +

  11. #11
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 852
    Points : 52 992
    Points
    52 992
    Billets dans le blog
    6
    Par défaut
    En tout cas mes tests sont intéressant.
    En passant par des expressions régulières via .net (SQL CLR), les temps de réponse sont catastrophiquement plus lent qu'avec du Transact SQL...
    Quelques exemples...
    Expression simple, validation d'un nombre dans une chaine via l'expression "\d*"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    tst_lib                                                times         
    -----------------------------------------------------  ------------
    phone domain number as UDF with Transact SQL code       35.708000     
    phone domain number with as CLR UDF (Regex)            118.718000
    Expression de complexité moyenne, validation d'un nom de personne via l'expression "^[a-zA-Z][a-zA-Z\-'' ]*[a-zA-Z]$"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    tst_lib                                            times       
    --------------------------------------------------------------
    name domain string as UDF with CLR code            331.616000  
    name domain string as UDF with Transact SQL code    40.751000
    Bref, entre 4 et 8 fois moins rapide en passante par les Regex !!!!

    A +

Discussions similaires

  1. [RegEx] Expression régulière pour supprimer des doublons
    Par cbroissa dans le forum Langage
    Réponses: 5
    Dernier message: 20/05/2017, 01h59
  2. Expression régulière pour prénom/nom
    Par blirette dans le forum Langage
    Réponses: 5
    Dernier message: 18/01/2008, 17h43
  3. [RegEx] Simple expression régulière pour ereg_replace
    Par aurapp dans le forum Langage
    Réponses: 6
    Dernier message: 12/03/2006, 12h34
  4. Expression régulière pour récupérer le nom d'un fichier
    Par calimero2611 dans le forum Langage
    Réponses: 5
    Dernier message: 24/02/2006, 19h00
  5. Expression Régulière pour float
    Par zebiloute dans le forum Langage
    Réponses: 5
    Dernier message: 26/09/2005, 14h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo