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

C# Discussion :

Supprimer espaces numéro de téléphone lien


Sujet :

C#

  1. #1
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 200
    Points : 111
    Points
    111
    Par défaut Supprimer espaces numéro de téléphone lien
    Bonjour,

    J'aimerais supprimer les espaces d'un numéro de téléphone dans un lien de type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href=\"tel:00 00 00\">00 00 00</a>
    A cause de ces espaces, la numérotation ne s'effectue pas bien sur mobile lors du clique sur ceux-ci.

    Voici mon code actuellement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    string output = Regex.Match(input,
                                  "<a?!.*(tel:.*)\"");
     
    output.Group[1].Value.Trim()
    La dernière ligne n'est pas du tout le code que j'utiliserai à terme.
    Je n'ai pas fait de boucle, et Trim() est ici en exemple, ce n'est bien évidement pas la méthode que j'utiliserai.

    Si vous avez une solution à me proposer directement avec Regex.Replace(), je suis preneur également

    Merci par avance.

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Tu peux utiliser la fonction Replace :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var initialString = "<a href=\"tel:00 00 00\">00 00 00</a>";
    var cleanedString = initialString.Replace("  ", string.empty);
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 200
    Points : 111
    Points
    111
    Par défaut
    Merci de ta réponse rapide mais mon problème est plutôt comment retrouver les liens contenant "tel:..." que comment remplacer les espaces.

    Je me suis déjà créé une fonction qui supprimes les espaces blancs, je n'ai mis Trim() ici qu'à titre d'exemple.

  4. #4
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2011
    Messages : 56
    Points : 142
    Points
    142
    Par défaut
    Hello,

    Bon un peu étonnant ton code, est ce qu'en entrée tu prends une ligne, un lien <a. ... /a>, ou la totalité de la page en html...

    Une possibilité utilise dans une boucle un:
    int start = chaine.IndexOf("tel:");
    var num = chaine.Substring(start+4, 8); // length : '00 00 00'
    var numSansEspace = num.Replace(' ', '');

    Qu'en penses-tu ?

  5. #5
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 200
    Points : 111
    Points
    111
    Par défaut
    Bonjour Robix,

    Merci de ta réponse.

    J'ai peut-être trop simplifié mon code.
    En entrée j'ai un texte html plus ou moins long qui peut ou pas contenir des liens.

    Ton morceau de code ne me convient pas car ne fonctionnera que sur mon exemple. ils ne seront pas forcément de ce format là. Ça reste un numéro de téléphone donc en France déjà, ils pourront potentiellement être sous ce format "00 00 00 00 00", mais mon application sera une application multi-langue, je ne sais pas comment sont fait les numéros dans les autres pays. Pour le moment il faut simplement que je supprime les espaces.

    De plus tu parles d'une boucle mais c'est bien là l'origine de mon problème : je n'arrive pas à avoir une regex qui me retourne tous mes liens donc pas de boucle.

    Si j'avais réussi avec récupérer tous mes liens avec le "tel:" j'aurais très probablement pu me débrouiller avec substring comme tu l'as proposé.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    665
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 665
    Points : 1 161
    Points
    1 161
    Par défaut
    Bonsoir,
    Citation Envoyé par Air P-E Voir le message
    mon problème est plutôt comment retrouver les liens contenant "tel:..." que comment remplacer les espaces.
    Pour cela il existe HtmlAgilityPack.
    Dans le tutoriel de tomlev, vous y trouverez - entre autres - les informations pour ajouter ses pacquages à votre projet.

    puis ce bout de code devrait convenir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
                // CHARGE LE FICHIER
                HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
                doc.Load(pathFileToLoad);
     
                // RECUP TEL
                var aTags = doc.DocumentNode.SelectNodes("//a[contains(@href, 'tel')]");
                foreach (HtmlNode aTag in aTags)
                    Console.WriteLine(aTag.OuterHtml + " -----  " + aTag.InnerText + " ----- " + aTag.GetAttributeValue("href", ""));
    Autrement, les guillemets échappés (\") ne participent t'ils pas au problème ?

  7. #7
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 200
    Points : 111
    Points
    111
    Par défaut
    Bonjour chrismonoye,

    Merci de ta réponse. Je n'ai pas le temps de tester pour le moment.

    Je connais l'existe de HtmlAgilityPack. Je ne souhaitais pas l'utiliser pour si peu mais si personne d'autre ne propose de solution alors je testerai ça. Ça me donnera une occasion de l'essayer et de m'en faire mon idée.

Discussions similaires

  1. Enlever les espaces d'un champ numéro de téléphone
    Par stylor dans le forum Développement
    Réponses: 11
    Dernier message: 29/05/2014, 02h10
  2. [Article] Comment ajouter des liens vers des numéros de téléphone
    Par FirePrawn dans le forum Publications (X)HTML et CSS
    Réponses: 7
    Dernier message: 08/11/2012, 17h21
  3. [HTML 5] Comment ajouter des liens vers des numéros de téléphone
    Par FirePrawn dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 08/11/2012, 17h21
  4. Rajouter des espace dans les numéros de téléphones
    Par zooffy dans le forum Développement
    Réponses: 10
    Dernier message: 29/09/2008, 15h05

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