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

Java Discussion :

[Regex] chaîne sans balise html


Sujet :

Java

  1. #1
    Membre habitué
    Avatar de Casp
    Homme Profil pro
    Reponsable Technique
    Inscrit en
    Avril 2003
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Reponsable Technique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 133
    Points : 132
    Points
    132
    Par défaut [Regex] chaîne sans balise html
    Bonjour,

    voila que je galère un peu pour la définition d'une expression régulière.

    en gros je souhaites vérifier que ma chaîne de caractère ne contient pas de balise. c'est pour empêcher la saisie de balise html dans un textfield.

    pour le moment j'ai ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [a-zA-Z0-9\\s]*<[^>]*>[a-zA-Z0-9\\s]*
    qui me permet de voir que ma chaine contient des <***>

    me diriez vous pourquoi ne pas tester tout simplement si elle contient des caractères classiques, mais j'ai un soucis pour lui dire de prendre en compte les caractères accentués.

    merci d'avance.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Pourquoi pas juste dire que tu veux tout sauf < ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre habitué
    Avatar de Casp
    Homme Profil pro
    Reponsable Technique
    Inscrit en
    Avril 2003
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Reponsable Technique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 133
    Points : 132
    Points
    132
    Par défaut
    ça y est, je l'ai trouvé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [a-zA-Z0-9\\sÀÂÇÈÉÊËÎÔÙÛàâçèéêëîôöùû\\p{Punct}&&[!(<[^>]*)]]*

    edit : ah ben non en fait :/

  4. #4
    Membre habitué
    Avatar de Casp
    Homme Profil pro
    Reponsable Technique
    Inscrit en
    Avril 2003
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Reponsable Technique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 133
    Points : 132
    Points
    132
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Pourquoi pas juste dire que tu veux tout sauf < ?
    car on peut avoir potentiellement des noms avec seulement > ou <

    en fait c'est pour une application web, et nos testeurs avaient pu injecter du code javascript avec l'utilisation de balise html

  5. #5
    Membre actif
    Avatar de karbos
    Inscrit en
    Novembre 2008
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 155
    Points : 255
    Points
    255
    Par défaut
    Le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    String regexp =".*<.+>.*";
    		String[] tests = {"youpi", "sd<oiu>fg", "t<kjh", "jhg>", "kjh<>"};
    		for (int i = 0; i < tests.length; i++) {
    			if(tests[i].matches(regexp)) System.out.println(i);
    		}
    écriras uniquement "1" ("ds<oiu>fg")...

  6. #6
    Membre habitué
    Avatar de Casp
    Homme Profil pro
    Reponsable Technique
    Inscrit en
    Avril 2003
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Reponsable Technique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 133
    Points : 132
    Points
    132
    Par défaut
    bon ben le client est ok pour que l'on rejete juste les < > sans se prendre la tête ...

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par Casp Voir le message
    car on peut avoir potentiellement des noms avec seulement > ou <

    en fait c'est pour une application web, et nos testeurs avaient pu injecter du code javascript avec l'utilisation de balise html
    Dans ce cas-là, il n'y a rien à "rejeter," c'est juste que quand quelqu'un dit qu'il s'appeller Monsieur <script>, il faut que l'application affiche le nom de la personne comme étant <script>, autrement dit en échappant son écriture &lt;script&gt;
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre habitué
    Avatar de Casp
    Homme Profil pro
    Reponsable Technique
    Inscrit en
    Avril 2003
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Reponsable Technique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 133
    Points : 132
    Points
    132
    Par défaut
    Citation Envoyé par karbos Voir le message
    Le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    String regexp =".*<.+>.*";
    		String[] tests = {"youpi", "sd<oiu>fg", "t<kjh", "jhg>", "kjh<>"};
    		for (int i = 0; i < tests.length; i++) {
    			if(tests[i].matches(regexp)) System.out.println(i);
    		}
    écriras uniquement "1" ("ds<oiu>fg")...
    je viens d'arriver à la même chose.
    le plus dur avec ça et de trouver l'inverse.

    car avec mon composant gxt, je dois lui donner le contraire de ça pour qu'il me mette automatiquement mon champs en rouge pour signaler l'erreur à l'utilisateur.

  9. #9
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par Casp Voir le message
    je viens d'arriver à la même chose.
    le plus dur avec ça et de trouver l'inverse.

    car avec mon composant gxt, je dois lui donner le contraire de ça pour qu'il me mette automatiquement mon champs en rouge pour signaler l'erreur à l'utilisateur.
    "Ou bien tu as le droit de contenir des <, ou bien tu as le droit de contenir des >, mais tu ne peux pas contenir à la fois des < et des >"
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre habitué
    Avatar de Casp
    Homme Profil pro
    Reponsable Technique
    Inscrit en
    Avril 2003
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Reponsable Technique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 133
    Points : 132
    Points
    132
    Par défaut
    oui, je vais faire quelque chose dans ce genre.

    merci en tout cas du coup de main.

  11. #11
    Membre actif
    Avatar de karbos
    Inscrit en
    Novembre 2008
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 155
    Points : 255
    Points
    255
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Dans ce cas-là, il n'y a rien à "rejeter," c'est juste que quand quelqu'un dit qu'il s'appeller Monsieur <script>, il faut que l'application affiche le nom de la personne comme étant <script>, autrement dit en échappant son écriture &lt;script&gt;
    +1
    Je n'utilise pas GXT, mais j'ai lu ça sur un forum :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String str = "Some<br>text";
    str = Format.htmlEncode(str);

Discussions similaires

  1. [RegEx] Regex URL: interdire balise html ?
    Par xxkirastarothxx dans le forum Langage
    Réponses: 5
    Dernier message: 10/04/2010, 02h28
  2. [Article] Rétablir le flux après des éléments flottants en CSS sans balise HTML supplémentaire
    Par Bovino dans le forum Publications (X)HTML et CSS
    Réponses: 0
    Dernier message: 05/01/2009, 20h35
  3. Réponses: 0
    Dernier message: 05/01/2009, 20h35
  4. [Regex] Balises Html
    Par onegamer dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 09/08/2005, 16h34

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