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 :

Calculer la position d'un mot en ignorant les balises


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    415
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 415
    Points : 125
    Points
    125
    Par défaut Calculer la position d'un mot en ignorant les balises
    Bonjour,

    je cherche le moyen de calculer la position d'un mot en ignorant les balises

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var str="Une chaîne de <b>caractère</b>s est une série de <b>caractère</b>s, où un <b>caractère</b> est la même chose qu'un octet.";
    je voudrais calculer la position du deuxième mot "caractère" en ignorant les balises comme si la phrase était :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var str="Une chaîne de caractères est une série de caractères, où un caractère est la même chose qu'un octet.";
    qui est dans ce cas à la position 42

    Comment faire ?
    merci

  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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    s'agit il toujours de la balise <b> ou peut il y avoir d'autre balise ?

    tu peux supprimer les balises avec un replace et tester avec une regexp au moyens des groupes de capture
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var str="Une chaîne de <b>caractère</b>s est une série de <b>caractère</b>s, où un <b>caractère</b> est la même chose qu'un octet.";
    temp=document.createElement('span');
    temp.innerHTML=str
    str=temp.innerText
    reg=/^(.*)caractères(?!caractères)/
    alert(str.match(reg)[1].length)



    sinon sous IE avec innerText
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var str="Une chaîne de <b>caractère</b>s est une série de <b>caractère</b>s, où un <b>caractère</b> est la même chose qu'un octet.";
    temp=document.createElement('span');
    temp.innerHTML=str
    tab=temp.innerText.split('caractère')
    alert(tab[0].length+'caractère'.length+tab[1].length)
    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
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    le innerText étant propritétaire IE il faut passer par textContent pour les autres navigateurs
    Voici une solution cross browser
    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
    function getText(elem){
       if (elem.textContent){
          return elem.textContent;
       }else{
          return elem.innerText;
       }
    }
     
    var str="Une chaîne de <b>caractère</b>s est une série de <b>caractère</b>s, où un <b>caractère</b> est la même chose qu'un octet.";
    temp=document.createElement('span');
    temp.innerHTML=str
    str=getText(temp)
    alert(str)
    reg=/^(.*)caractères(?!caractères)/
    alert(str.match(reg)[1].length)
    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 !

Discussions similaires

  1. creation outil calcul de densité mots clé (selectionner les balises)
    Par christophelsm2 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 17/06/2009, 17h28
  2. Réponses: 2
    Dernier message: 05/07/2007, 17h35
  3. [Math] Calcul de position de vecteur.
    Par Lucyberad dans le forum DirectX
    Réponses: 4
    Dernier message: 19/05/2007, 16h15
  4. Calcul du poid d'un mot (moteur de recherche)
    Par vodevil dans le forum Algorithmes et structures de données
    Réponses: 25
    Dernier message: 23/11/2006, 03h07
  5. retrouver la position d'un mot dans un TCanvas
    Par richard038 dans le forum Langage
    Réponses: 4
    Dernier message: 25/03/2006, 10h17

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