Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Extraire un mot-clef d'une chaine avec espaces

14 réponses
Avatar
Olivier Miakinen
Bonjour,

Dans une chaîne de caractères composée de 0, 1 ou plusieurs mots-clés
séparés par des espaces, je cherche le moyen le plus efficace pour
supprimer l'un des mots-clés s'il existe.


Pour que ma demande soit claire, voici quelques exemples dans lesquels
le mot-clé à extraire est "mot".

1) "mot" -> ""
(le mot-clé était seul dans la chaîne, la chaîne devient vide)

2) "avant mot" -> "avant"
"mot apres" -> "apres"
"avant mot apres" -> "avant apres"
(cas où le mot-clé est au début, au milieu ou à la fin de la chaîne)

3) "un-mot mot-cle mot_mot_mot" -> "un-mot mot-cle mot_mot_mot"
("mot" n'existe pas en tant que tel)

Je précise qu'un mot-clé ne peut se trouver qu'une seule fois au maximum
dans une chaîne, et qu'il ne contient jamais d'espaces.


À vrai dire, en parcourant la doc de JavaScript, j'ai vu que je pourrais
faire un truc de ce genre là :
- tableau1 = chaine.split(" ");
- tableau2 = new Array();
- pour tous les éléments de tableau1, les ajouter dans tableau2 s'ils
sont différents du mot-clé
- chaine = tableau2.join(" ")
Mais ça ne me semble pas très efficace. Je n'ai trouvé aucune méthode
native pour rechercher un élément dans un tableau, ni pour supprimer un
élément au milieu d'un tableau.


Y a-t-il une autre méthode ? J'ai pensé aux RegExp aussi, mais je ne
sais pas comment traiter efficacement les différents cas.


Cordialement,
--
Olivier Miakinen

4 réponses

1 2
Avatar
Olivier Miakinen

Est-ce qu'au moins je peux conserver mes définitions de méthodes pour
l'objet Array ?


Oui, l'ajout au prototype des objets natifs ou définis par script de
javascript fait partie de la spécification.


Glop glop !

Le comportement des objets de l'application hôte, par contre...


Pas glop, mais bon, l'essentiel est de le savoir. Merci encore.


Avatar
ASM
Olivier Miakinen wrote:
Alors plutôt :
machaine = (' '+machaine+' ').replace(' mot ',' ').trim(' ');
(en espérant que la méthode trim() existe, je n'ai pas vérifié)


je ne connais pas trim() (FF non plus semble t-il ...)

(couic)

Note, ASM, que ceci va me servir pour répondre à tes objections du mois
dernier à propos de ma page de charsets. Ce n'est pas encore en ligne
mais ça avance, ça avance...


tu veux voir une débilité consernant les caractères ?

pas lourd => 3ko

très lourd =>
- mon IE la dernière fois a mis > 3mn pour afficher
- FF ne lui faut que 50 secondes

amusant (?) ==>
en l'état çà n'affiche pas la même chose sous FF et sous Opera
(vers la 194ième table c'est très apparent)

c'est ici :
<http://perso.wanadoo.fr/stephane.moriaux/truc/cree-256_listes_caracteres.htm>



J'savais pas qu'j'avais tout çà dans mon ordi ... !

--
Stephane Moriaux et son [moins] vieux Mac

Avatar
Olivier Miakinen

tu veux voir une débilité consernant les caractères ?


Oh oui, oh oui ! C'est un hasard, si ton « concernant » a été influencé
par l'orthographe de « consternant » ? ;-)

c'est ici :
<http://perso.wanadoo.fr/stephane.moriaux/truc/cree-256_listes_caracteres.htm>


Il faut de la patience, mais c'est très amusant en effet. Merci !

Avatar
ASM
Olivier Miakinen wrote:

tu veux voir une débilité consernant les caractères ?


Oh oui, oh oui ! C'est un hasard, si ton « concernant » a été influencé
par l'orthographe de « consternant » ? ;-)


Y a pas ! tu as l'oeil !
J'ai aussi bp de mal avec :
conserve/concerve conserter/concerter danse/dance

Il faut de la patience, mais c'est très amusant en effet. Merci !


d'autant que je ne suis pas assuré (même certain du contraire)
que tout le monde voit la même chose
(choix de la police par le navigateur en fonction du code-caratere
demandé pour tenter d'afficher qque chose partout)

--
Stephane Moriaux et son [moins] vieux Mac


1 2