JeuWeb - Crée ton jeu par navigateur
[Résolu][Javascript] Récupérer une partie de chaîne de caractère - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Résolu][Javascript] Récupérer une partie de chaîne de caractère (/showthread.php?tid=1218)



[Résolu][Javascript] Récupérer une partie de chaîne de caractère - Argorate - 25-03-2008

Bonjour, j'aimerais avoir une fonction, ou une methode pour pouvoir récupérer une chaine de caractere a un certain emplecament dans une chaine de caracteres.

exemple:

Si j'ai cette chaine: "http://www.jeuweb.org/board/newthread.php?fid=69", et que je veux récuperer le nombre qui se trouve a la fin, en l'occurence 69, comment faire?


Sinon autre solution, une maniere d'enlever tous les caracteres sauf les chiffres, car je suis sur de ne pas avoir d'autre chiffre dans mes chaines de caracteres mise a part ceux qui m'interesse, donc si vous avez une fonction qui fait ça, sa peut m'interessé...

merci.


RE: recuperer une partie d'une chaine de caractere en JavaScript - denisc - 25-03-2008

Utiliser la fonction SubString

1. Ajouter '&' à la fin de ta chaine
2. Localiser la sous chaine "fid=" à l'aide de indexof => debut
3. Localiser le '&' se trouvant après la position debut => fin
4. extraire la sous chaine commençant à debut+5 et de longueur (fin-(debut+5)) à l'aide de substring

Un petit lien pour t'aider : http://www.commentcamarche.net/javascript/jsstring.php3

Bon courage Wink


RE: recuperer une partie d'une chaine de caractere en JavaScript - Argorate - 25-03-2008

oui mais dans mon cas, le nombre a récupéré n'est pas en bout de chaine, donc ta méthode ne marche pas Confused


RE: recuperer une partie d'une chaine de caractere en JavaScript - Sephi-Chan - 25-03-2008

Tu peux passer par les expressions régulières.

Un petit exemple de la chose dans le cadre d'un script qui capture le contenu de l'ancre (qui suit l'URL) que j'ai fais pour gérer des onglets générés par Javascript (visible sur Valorbe, pour ceux que ça intéresse) et pour pouvoir afficher l'onglet que je souhaite au chargement d'une page (si vous allez sur Valorbe - Présentation, la page est la même, mais l'onglet affiché est différent).

Code PHP :
<?php 
if(window.location.href){
var
url = window.location.href;
var
regex = new RegExp("#.+");
var
anchor = url.match(regex);
if(
anchor){
var
tabTitle = anchor[0].replace('#', '');
if($(
'#bottomLeftFrame .tabs li[title=' + tabTitle + ']').size() >= 1){
currentTab = tabTitle;
}
}
}

Dans ton cas, il faut créer une un masque d'expression régulière qui capture la chaîne fid= et les nombres qui la suivent. Je pense que fid=([1-9]+) devrait faire l'affaire.

Il te suffit ensuite de supprimer les 4 premières caractères fid= et tu as ton nombre (il y a même moyen d'utiliser les parenthèses capturantes pour faire référence directement au nombre, mais je saurais pas le faire de tête).

Voilà donc quelques pistes (bien avancées, mêmes Smile) qui peuvent te servir.


Sephi-Chan


RE: recuperer une partie d'une chaine de caractere en JavaScript - denisc - 25-03-2008

Argorate a écrit :oui mais dans mon cas, le nombre a récupéré n'est pas en bout de chaine, donc ta méthode ne marche pas Confused

Gros malin... D'après toi, pourquoi ai-je rajouté un '&' à la chaine et rcherché les sous-chaines "fid=" et "&" se suivant???

Mais il est vrai que passer par une expression régulière est plus élégante Wink


RE: recuperer une partie d'une chaine de caractere en JavaScript - Argorate - 26-03-2008

avec un .substring() et un .indexOf j'y suis arrivé Smile merci bien!