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

JavaScript Discussion :

Récupération coordonnées GPS [RegExp]


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 97
    Points : 47
    Points
    47
    Par défaut Récupération coordonnées GPS
    Bonjour,

    j'utilse ce code pour tester la saisie de coordonnées gps

    Code : 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
    	// Controle de la saisie des coordonnées gps
    	var gps = document.getElementById("gps").value;	
    	var masque_gps =/^[-]?\d{1,3}.\d{6},[ ]{1}[-]?\d{1,3}.\d{6}$/;
     
    	if (gps != "")
    	{
    		if (masque_gps.test(theform.gps.value))
    		{
    			alert(gps + ' ok');
    		}
    		else
    		{
    			alert(gps + ' pas ok');	
    			return (false); 
    		}
    	}
    sauf qu'il me renvoi PAS OK pour ces coordonnees (43.529822, 5.447718) et je ne comprend pas ou est l'erreur.

    Quelqu'un peut-il m'aider ?
    Merci

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 104
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 104
    Points : 8 224
    Points
    8 224
    Billets dans le blog
    17
    Par défaut
    Je viens de tester :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /^[-]?\d{1,3}.\d{6},[ ]{1}[-]?\d{1,3}.\d{6}$/.test('43.529822, 5.447718'); // => true
    Mais il est vrai que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /^[-]?\d{1,3}.\d{6},[ ]{1}[-]?\d{1,3}.\d{6}$/.test('(43.529822, 5.447718)'); // => false
    => Les parenthèses sont censées être vérifiées ou pas ?



    Attention à tes points dans ta regexp qui seront interprétés comme des métas et pas comme des littéraux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /^[-]?\d{1,3}.\d{6},[ ]{1}[-]?\d{1,3}.\d{6}$/
    => Il faudrait les échapper
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 97
    Points : 47
    Points
    47
    Par défaut
    Bonjour,

    les parenthèse c'était pour donner l'exemple...

    Code : 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
     
            // Controle de la saisie des coordonnées gps
    	var gps = document.getElementById("gps").value;	
    	var masque_gps =/^[-]?\d{1,3}\.\d{6}\,[ ]{1}[-]?\d{1,3}\.\d{6}$/;
     
    	if (gps != "")
    	{
    		if (masque_gps.test(gps))
    		{
    			alert(gps+' ok');
    		}
    		else
    		{
    			alert(gps+' pas ok');	
    			return (false); 
    		}
    	}
    Même en échappant les point est la virgule cela donne pas Ok

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 104
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 104
    Points : 8 224
    Points
    8 224
    Billets dans le blog
    17
    Par défaut
    Pas besoin d'échapper la virgule ;-)

    J'ai repris ton script avec ton exemple, il fonctionne, le problème est donc ailleurs.

    Code : 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
    // Controle de la saisie des coordonnées gps
    //var gps = document.getElementById("gps").value;
    var gps = "43.529822, 5.447718";
     
    var masque_gps =/^[-]?\d{1,3}\.\d{6},[ ]{1}[-]?\d{1,3}\.\d{6}$/;
     
    if (gps != "")
    {
    	if (masque_gps.test(gps))
    	{
    		alert(gps+' ok');
    	}
    	else
    	{
    		alert(gps+' pas ok');
    		//return (false);
    	}
    }
    => Donne bien 43.529822, 5.447718 ok

    Attention au contenu du formulaire, une espace finale peut venir se glisser par exemple.

    Suppression des blancs en début/fin de GPS :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var gps = document.getElementById("gps").value.trim();
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 97
    Points : 47
    Points
    47
    Par défaut
    En fait le problème venait du fait que pour contrôler le nombre de chiffres ce n'est pas {6} qu'il faut utiliser mais {6,6}

    du coups le code suivant fonctionne
    Code : 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
    	// Controle de la saisie des coordonnées gps
    	var gps = document.getElementById("gps").value;	
    	var masque_gps =/^[-]?[0-9]{1,3}\.[0-9]{6,6}\,[ ]{1}[-]?[0-9]{1,3}\.[0-9]{6,6}$/;     /* ou var masque_gps =/^[-]?\d{1,3}\.\d{6,6}\,[ ]{1}[-]?\d{1,3}\.\d{6,6}$/; */
     
    	if (gps != "")
    	{
    		if (masque_gps.test(gps))
    		{
    			alert(gps+' ok');
    		}
    		else
    		{
    			alert(gps+' pas ok');	
    			return (false); 
    		}
    	}

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 97
    Points : 47
    Points
    47
    Par défaut
    Oups je n'avais pas vu votre réponse. J'avais pensé à contrôler la saisie du formulaire. j'ai donc testé les coordonnées morceau par morceau et c'est comme ça que j'ai constaté qu'avec {6,6} cela fonctionnait et non avec {6} comme je le pensais.

    maintenant c'est ok.

    Merci pour votre temps.

  7. #7
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 104
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 104
    Points : 8 224
    Points
    8 224
    Billets dans le blog
    17
    Par défaut
    {6} et {6,6}, c'est la même chose, étrange.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 97
    Points : 47
    Points
    47
    Par défaut
    je suis d'accord ... mystère mystère

  9. #9
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Ou variante sans regexp:


    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    const gps=document.getElementById("ch").value.split(", ");
    alert(
    	gps[0]==Number(gps[0]).toFixed(6) &&
    	gps[1]==Number(gps[1]).toFixed(6) &&
    	Math.abs(gps[0])<1000 &&
    	Math.abs(gps[1])<1000
    )

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 97
    Points : 47
    Points
    47
    Par défaut
    En fait j'ai testé et

    sous Edge {6} et {6,6} fonctionnent
    sous IE et FF c'est {6,6} qui fonctionne

    Vraiment curieux

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

Discussions similaires

  1. Base de données optimisée pour coordonnées GPS
    Par Simvetanylen dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 10/03/2015, 17h39
  2. [Google Maps] Récupération coordonnées gps pour itinéraire
    Par Rhino Onizuka dans le forum APIs Google
    Réponses: 3
    Dernier message: 02/02/2014, 18h26
  3. [Java] API pour intégrer carte avec coordonnées GPS
    Par Yann_69 dans le forum SIG : Système d'information Géographique
    Réponses: 1
    Dernier message: 12/10/2012, 12h36
  4. [RegEx] Regex pour les accents et autres
    Par yule dans le forum Langage
    Réponses: 4
    Dernier message: 21/08/2006, 15h47
  5. Coordonnées GPS en varchar
    Par julien.63 dans le forum Requêtes
    Réponses: 3
    Dernier message: 03/06/2006, 12h32

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