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érer une valeur avant de la modifier avec RegExp


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2003
    Messages : 97
    Par défaut récupérer une valeur avant de la modifier avec RegExp
    Bonjour à tous,

    Je voudrais remplacer tout les timestamps d'un text en date lisible. J'utilise la fonction regexs pour détecter les timestamps et les remplacer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    myRegex = new RegExp("[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]", 'gi');
    text = text.replace(myregex, 'madateici');
    this_text.textContent = text;
    Donc cela fonctionne pour remplacer tout les timestamps mais comment récupérer le timestamp avant qu'il ne soient remplacer afin de remplacer chaque timestamp par sa propre date ?

    Merci beaucoup
    Shaban

  2. #2
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Citation Envoyé par yodark Voir le message
    Donc cela fonctionne pour remplacer tout les timestamps mais comment récupérer le timestamp avant qu'il ne soient remplacer afin de remplacer chaque timestamp par sa propre date ?
    !?

    Sinon, en attendant de comprendre ta question ta regexp serait plus simple comme ça :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var myRegexp = /[0-9]{10}/g;//ou bien
    myRegexp = /\d{10}/g;
    (et n'oublie pas de déclarer tes variables avec "var" pour éviter les soucis de portée de variable ^^)

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    +1 Romain.

    D'autre part :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    myRegex = new RegExp("[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]", 'gi');
    text = text.replace(myregex, 'madateici');
    ne risque pas de fonctionner, JavaScript est sensible à la casse, donc myRegex != myregex.

    Sinon, le second paramètre de replace peut être une fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    text = text.replace(myregex, function(timestamp){return new Date(timestamp).toLocaleString();});
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    Étant une vraie branque en expreg je ne vais pas trop m'avancer mais je crois que dans certains languages (php/ perl? ) ya les variables $1, $2 etc... pour récupérer ta valeur et la manipuler. Hélas je pense que ça n'existe pas sous javascript et que tu vas devoir oublier le replace expreg et devoir te faire une petite fonction qui opérera ton string de façon chirurgical avec des getPos et des subStr. ( enfin c'est pas la mort non plus, ça doit pouvoir ce faire en 2-3 lignes )

  5. #5
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    Ah si, apparement ça fonctiomne aussi en js.

    Donc :

    Edit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    text = text.replace(/(\d{10})/g,function(s){ return new Date(parseInt(s)); });


    Edit2: ok, finalement j'ai réécris la même chose que Bovino.^^

  6. #6
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    Sinon pour mon histoire des $1, un exemple qui s'utilise sans fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    text = text.replace(/(\d{10})/g,"ceci est un timestamp : $1, ");

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2003
    Messages : 97
    Par défaut
    Merci j'ai utilisé ca finalement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    text = text.replace(/(\d{10})/g,convertDate(RegExp.$1)); 
    	this_text.textContent = text;
    Ca marche sauf pour la première instance de timestamp que me revoie systématiquement 0

Discussions similaires

  1. Récupérer une valeur avec caractère special
    Par medmans dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 19/10/2008, 18h50
  2. Comment récupérer une valeur de cellule avec le bon format?
    Par jeo13 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 10/06/2008, 12h41
  3. Réponses: 4
    Dernier message: 06/02/2008, 21h25
  4. [MySQL] Récupérer une valeur avec SELECT sensible à la casse
    Par nuphius dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 09/01/2007, 15h21
  5. Récupérer une valeur avec un textarea
    Par Viau dans le forum Langage
    Réponses: 6
    Dernier message: 14/02/2006, 17h09

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