comment rechercher un element dans un string (type gsub)

Le
kadoudal
bonjour

j'ai une variable c_url = "http://localhost:3000/member/mp4:clips/
requests/2/KimAronson_TwentySeconds58192.mp4"
dans laquelle j'ai un substring fixe de repère 'requests/' qui ne
change jamais

et je cherche à obtenir la valeur numérique qui vient après , soit
pour cette variable : 2


autres exemple :
c_url = "http://localhost:3000/member/mp4:clips/requests/56/Ksony.mp4
je doit récupérer : 56

est-ce possible ? si oui comment ? (je ne suis pas un guru de js
plutôt niveau moyen..)
j'ai essayé avec substr() , mais la longueur de ce que je récupère
est variable
bien sûr , il est possible d'obtenir le substring "2/
KimAronson_TwentySeconds58192.mp4"" jusqu'à la fin
puis de recherche la position du 1er slash (1 dans ce cas
et de faire un substring à nouveau ..
mais il y-a-t-il un solution plus simple ?

merci de votre aide .

Yves
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
SAM
Le #21437581
Le 3/25/10 11:29 AM, kadoudal a écrit :
bonjour

j'ai une variable c_url = "http://localhost:3000/member/mp4:clips/
requests/2/KimAronson_TwentySeconds58192.mp4"
dans laquelle j'ai un substring fixe de repère 'requests/' qui ne
change jamais

et je cherche à obtenir la valeur numérique qui vient après , soit
pour cette variable : 2

autres exemple :
c_url = "http://localhost:3000/member/mp4:clips/requests/56/Ksony.mp4
je doit récupérer : 56

est-ce possible ? si oui comment ? (je ne suis pas un guru de js...
plutôt niveau moyen..)
j'ai essayé avec substr() , mais la longueur de ce que je récupère
est variable...



maVariable = c_url.substring(c_url.indexOf('requests/')+9,
c_url.lastIndexOf('/'));
alert(maVariable);


mais il y-a-t-il un solution plus simple ?



Le précédent suppose qu'il n'y a qu'un seul slash après le chiffre à
chercher.
Une expression régulière peut faire un peu mieux, comme ça :

maVariable = c_url.replace(/(.*requests/)(d+)(.*)/, '$2');

par exemple.

L'expression régulière (entre les /) dit :

(n'importe quel caractère plusieurs fois et puis 'requests/')
(un nombre au moins)
(n'importe quel caractère plusieurs fois)

En chaîne de remplacement on ne garde que le groupe 2


--
sm
Publicité
Poster une réponse
Anonyme