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

jQuery Discussion :

Comparaison de variable string


Sujet :

jQuery

  1. #1
    Membre chevronné
    Avatar de Darkaurora
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2010
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 382
    Billets dans le blog
    1
    Par défaut Comparaison de variable string
    Je suis en peine avec une simple comparaison de variable de type string.

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    var KindOfSerial = [];
     
    $( '#Modal-Pack' ).keydown( function ( e ) {
    	KindOfSerial.push( e.keyCode );
     
    	if( e.keyCode == 13 ) { Flash( KindOfSerial ); KindOfSerial = []; }
    } );
     
    function Flash( KindOfSerial ) {
    	var Serial = String( );
     
    	for( a in KindOfSerial )
    		Serial += String.fromCharCode( KindOfSerial[a] );
     
     
    	Serial.replace(/\s/g,"");
     
    	for( var a in elt.serial_number ) {	
     
    		if( elt.serial_number[a].numero == Serial ) {
    			$( '.bodySerial' ).append( '<tr> <td>'+elt.serial_number[a].numero+'</td> </tr>' );
     
    			flag = true;
    		}
    	}
    }

    L'objet elt est en partie constituer d'un tableau d'objet serial_number avec un seul attribut numero. Ce tableau d'objet contient la liste des numéros de série enregistré.

    La variable Serial est un string contenant la valeur d'un numéro de série scanner avec un lecteur code barre.

    Lorsque j'affiche les deux valeurs à l'aide d'un:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    console.log( elt.serial_number[a].numero, Serial )
    sur chaque itération je retrouve bien une ligne ou je devrais passer dans ma condition mais rien y fait.

    J'ai bien essayé de supprimer d'éventuels espaces ou caractère blanc mais pas moyen ça veut pas passer.

    Chose étrange lorsque je fait quelque chose de ce genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    for(a in Serial) console.log( Serial[a] );
    cela m'affiche des caractères blanc en début et fin de chaîne mais aussi à chaque répétition de caractères se suivant...
    exemple:

    Serial = '004TWH9388'

    ==> [ ], [0], [ ], [0], [4], [T], [W], [H], [9], [3], [8], [ ], [8], [ ]

    merci d'avance de votre aide

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    ne faudrait il pas inverser ces deux lignes ?
    tester que le keydown n'est pas un retour ligne avant de faire un push ??
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Serial = Serial.replace(/\s/g,""); // pour que Serial soit modifiée
    pas regardé le reste.

  4. #4
    Membre chevronné
    Avatar de Darkaurora
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2010
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 382
    Billets dans le blog
    1
    Par défaut
    Effectivement dans un premier temps il fallait réaffecter la nouvelle valeur renvoyer par le replace.

    Mais ça n'allait toujours pas, j'ai donc test les longueur de chaîne. et j'avais 2 caractères de plus sur la chaîne scanné.

    En regardant la doc, la prog de base du lecteur définit le début de la lecture et la fin de la lecture par le caractère 16 ( Shift ) et il était complètement invisible dans le console.log( Serial ).

    Ayant certaine difficulté en Regexp quelqu'un aurait il l’amabilité de m'aider à construire une complète afin de prendre en compte ce genre d'indésirable dans ma chaîne?

  5. #5
    Membre chevronné
    Avatar de Darkaurora
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2010
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 382
    Billets dans le blog
    1
    Par défaut
    Très peu de rapport avec le sujet initial, mais j'aimerais savoir si il est possible de mettre un événement sur un élément parent sauf sur un enfant spécifique.

    je m'explique, plus haut j'avais
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $( '#Modal-Pack' ).keydown( function ( e ) {
    	KindOfSerial.push( e.keyCode );
     
    	if( e.keyCode == 13 ) { Flash( KindOfSerial ); KindOfSerial = []; }
    } );

    cependant si le lecteur est en panne... j'ai un champ permettant de d'ajouter manuellement un numéro de série. Le problème est que si j'appuie sur 'entrée' l’événement keydown de mon $( '#Modal-Pack' ) est exécuté avant l'événement keydown de mon input et ça foire...

    donc est il possible de dire lorsque j'appuie sur entrée dans mon $( '#Modal-Pack' ) ça fait TADADA sauf si j'appuie sur entrée dans mon input?

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(elt).children().not(selecteur)
    ??
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre chevronné
    Avatar de Darkaurora
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2010
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 382
    Billets dans le blog
    1
    Par défaut
    J'ai l'agréable sensation de passer pour un con...

    Edit:

    Après avoir fait de cette manière

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    $( '#Modal-Serial' )
    	.not( '#NUM' ) // mon input
    	.keydown( function ( e ) {
     
    		KindOfSerial.push( e.keyCode );
     
    		if( e.keyCode == 13 ) { console.log( 0 );
     
    			$( '#NUM' ).val( '' );
    			Flash( KindOfSerial );
    			KindOfSerial = [];
     
    		}
    	} );

    cela n'était pas concluant... j'ai donc tout simplement ajouter un stopPropagation() et le tour est joué.

    Merci pour l'aide.

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $( '#Modal-Serial' )
    	.not( '#NUM' )
    ???

    # cherche par id => cela retourne un seul élément
    de plus un element ne peut pas avoir plusieurs ids ...
    donc en gros là tu le demande recupére l'element qui a pour id Modal-serial sauf l'element qui a pour id NUM ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    Citation Envoyé par Darkaurora
    J'ai l'agréable sensation de passer pour un con...
    pas de problème si tu en reveux on se fera un réel plaisir

  10. #10
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    cela m'affiche des caractères blanc en début et fin de chaîne mais aussi à chaque répétition de caractères se suivant
    tu peux faire un split suivi d'un join pour t'en débarrasser.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Serial = Serial.split('LE_CARACTERE_SPECIAL').join('');
    exemple avec \n comme caractère spécial
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var Serial = '\n0\n04TWH938\n8\n';
    alert( Serial);
    Serial = Serial.split('\n').join('');
    alert( Serial);

  11. #11
    Membre chevronné
    Avatar de Darkaurora
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2010
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 382
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $( '#Modal-Serial' )
    	.not( '#NUM' )
    ???

    # cherche par id => cela retourne un seul élément
    de plus un element ne peut pas avoir plusieurs ids ...
    donc en gros là tu le demande recupére l'element qui a pour id Modal-serial sauf l'element qui a pour id NUM ...
    oui c'est ça que je cherche à faire... en quoi est ce incorrecte? Je cherche bien à déclarer un événement keydown sur l'ensemble de mon conteneur ayant l'id Modal-Serial sauf sur mon input ayant l'id NUM.

    Citation Envoyé par NoSmoking Voir le message
    tu peux faire un split suivi d'un join pour t'en débarrasser.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Serial = Serial.split('LE_CARACTERE_SPECIAL').join('');
    exemple avec \n comme caractère spécial

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var Serial = '\n0\n04TWH938\n8\n';
    alert( Serial);
    Serial = Serial.split('\n').join('');
    alert( Serial);
    j'avais essayé cette solution mais cela ne venais pas d'espace comme je le pensais, mais de caractères spéciaux tel que shift qui était apparemment capturé dans mon string. J'ai préféré faire une restriction sur l'ensemble de ces caractères. ( je ne suis pas sur que l'on puisse les considérer comme caractères mais ils étaient bel et bien dans mon string ).

    En attendant de créer une RegExp spéciale pour...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. transfert d'une variable string vers rapport RAVE
    Par segnac dans le forum Bases de données
    Réponses: 4
    Dernier message: 30/11/2013, 07h24
  2. insertrecord et variable string
    Par valoji dans le forum Bases de données
    Réponses: 2
    Dernier message: 19/10/2005, 01h06
  3. Probleme comparaison de variable
    Par dynxd dans le forum Access
    Réponses: 2
    Dernier message: 02/10/2005, 21h48
  4. Sql et Variable String
    Par jaafarben dans le forum JDBC
    Réponses: 1
    Dernier message: 11/08/2005, 21h19
  5. Réponses: 6
    Dernier message: 14/02/2004, 14h01

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