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 Discussion :

replace ou regExp


Sujet :

ASP

  1. #1
    Membre actif
    Homme Profil pro
    Webmaster Pays Basque
    Inscrit en
    Avril 2004
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster Pays Basque
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 207
    Points : 238
    Points
    238
    Par défaut replace ou regExp
    Bonjour,

    J'ai un petit soucis sur la mise en place d'une fonction qui utiliserait un replace ou un regExp (comme l'indique le titre). Je m'explique:

    J'ai une table où je stocke une url cible sous la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    default.asp?page=pageID&client=clientID&contact=contactID.
    De manière à pouvoir dynamiquement utiliser cette url avec une liste de clients, j'ai modifié l'url pour l'enregistrer comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    default.asp?page=$pageID&client=$clientID&contact=$contactID.
    Actuellement je fais un test d'existence sur mon url et en fonction je fais un replace des éléments que je trouve, mais ça c'est plutôt facile puisque je sais qu'il y a trois champs existants pageID, clientID, contactID. :-)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if instr(1,chaine,'$pageID') then replace (chaine, '$pageID', 'pageID')... et ainsi de suite pour chaque champ.
    J'aimerai ouvrir les possibilités. Ce que je voudrais faire c'est tester dans un premier temps l'url, voir si elle contient des éléments de type '$champID' (jusqu'au '&' suivant si il y en a), et les remplacer dynamiquement par la valeur 'champID' si elle existe dans la requête.
    Je me disais que peut être l'utilisation d'un rexExp serait plus judicieux qu'une fonction gourmande en ligne de code.

    Je suis nul en regExp, j'ai beau parcourir les forum dédiés, je reste sans voix (et sans doigts) quant à son usage.

    Certains vont peut être me proposer d'enregistrer dans ma requete un champ ur contenant les paramètres que je veux envoyer, genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    default.asp?clientID=CAST(clientID as nvarchar)+'&'CAS(pageID as nvarchar)+'&'...
    Je sais ça marche bien mais ce n'est pas ce que jeux faire.

    Quelqu'un peut il m'aider à réaliser ça ?
    Merci d'avance

  2. #2
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    1 616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 616
    Points : 3 965
    Points
    3 965
    Par défaut
    la dernière URL, jamais je ne ferais appel à l'injection ça

    ou alors j'ai pas compris ce que tu veux faire...


    j'aurai envie de te dire que la fonction replace fait directement le test de présence de ta chaine, donc pas besoin de regexp au préalable, ou de test instr
    Émotion
    Infantilisation
    Culpabilisation

    Christophe Alévèque - 18 Mars 2021

  3. #3
    Membre actif
    Homme Profil pro
    Webmaster Pays Basque
    Inscrit en
    Avril 2004
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster Pays Basque
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 207
    Points : 238
    Points
    238
    Par défaut
    Déjà, merci de ta réponse freedoche!

    j'aurai envie de te dire que la fonction replace fait directement le test de présence de ta chaine, donc pas besoin de regexp au préalable, ou de test instr
    Oui, je suis d'accord quand on sait quelles variables sont à remplacer, ce qui est la cas pour l'instant.
    Ce que je veux faire c'est justement automatiser la chose de manière à ce qu'il teste et remplace toute variable qu'il trouve ayant un équivalent dans la requete.
    C'est à dire que si je déclare une variable dans mon url cible de type '&machinID=$machinID', il puisse vérifier
    1- si dans ma requete il existe un champ de sortie machinID
    2 -il le remplace alors par la valeur de ce champ.

    Suis je plus clair. Merci

  4. #4
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    1 616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 616
    Points : 3 965
    Points
    3 965
    Par défaut
    oui ok je vois ce que tu veux dire

    oui regexp est certainement une solution, tu peux récupérer un collection de Match que tu peux travailler
    Émotion
    Infantilisation
    Culpabilisation

    Christophe Alévèque - 18 Mars 2021

  5. #5
    Membre actif
    Homme Profil pro
    Webmaster Pays Basque
    Inscrit en
    Avril 2004
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster Pays Basque
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 207
    Points : 238
    Points
    238
    Par défaut
    Oui mais as tu une suggestion parce que comme je l'avais mentionné, je suis pas très bon en rexexp... ?

  6. #6
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    1 616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 616
    Points : 3 965
    Points
    3 965
    Par défaut
    non pas de suggestion

    d’ailleurs ce serait dommage de te gâcher l'un des rares plaisir de cette activité, c'est à dire "chercher".

    Et je ne pense pas à Google en écrivant cela
    Émotion
    Infantilisation
    Culpabilisation

    Christophe Alévèque - 18 Mars 2021

  7. #7
    Membre actif
    Homme Profil pro
    Webmaster Pays Basque
    Inscrit en
    Avril 2004
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster Pays Basque
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 207
    Points : 238
    Points
    238
    Par défaut
    Je te remercie de ta sollicitude...
    Et d'ailleurs Google sur ce coup à n'est plus mon ami

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 95
    Points : 133
    Points
    133
    Par défaut
    moi je ferais :
    Postulat :
    - URL contient la chaine d'url à analyser
    - RS est un recordset avec sa collection de champs
    - tous les champs possiblement remplacables sont dans RS

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for each f in rs.fields
    URL=replace(URL,"$"&f.name,f.value)
    next
    Je sais pas si c'est ce qui est attendu mais je crains qu'avec regExp ça ne soit pas + simple...

  9. #9
    Membre actif
    Homme Profil pro
    Webmaster Pays Basque
    Inscrit en
    Avril 2004
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster Pays Basque
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 207
    Points : 238
    Points
    238
    Par défaut
    Oui, j'avais finalement fait comme ça (en un peu plus long, genre 20 lignes au lieu de 3 ... ) et ça semblait marcher. Du coup, avec ton code, je viens d'optimiser la mémoire...
    Juste besoin de controler que les champs valeurs ne sioen t pas égale à null sinon, la fonction replace aime pas trop. Au final, ça me fait 4 lignes...
    Merci

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 95
    Points : 133
    Points
    133
    Par défaut
    effectivement, replace et null font pas bon ménage...
    et gérer le problème de la casse (min/maj) des noms...
    suis content que ça corresponde à ta demande...

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

Discussions similaires

  1. SELECT avec REPLACE et REGEXP
    Par bronon dans le forum Requêtes
    Réponses: 7
    Dernier message: 08/09/2014, 12h32
  2. replace et regexp
    Par SpaceFrog dans le forum Requêtes
    Réponses: 2
    Dernier message: 28/07/2009, 09h43
  3. regExp replace détresse absolue
    Par SpaceFrog dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/07/2007, 13h44
  4. [REGEXP] Question Utilisation fonction replace
    Par calitom dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/03/2007, 17h39
  5. [RegExp] replace
    Par CUCARACHA dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 25/10/2005, 17h08

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