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

comment rechercher un element dans un string (type gsub)

1 réponse
Avatar
kadoudal
bonjour

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

et je cherche =E0 obtenir la valeur num=E9rique qui vient apr=E8s , soit
pour cette variable : 2


autres exemple :
c_url =3D "http://localhost:3000/member/mp4:clips/requests/56/Ksony.mp4
je doit r=E9cup=E9rer : 56

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

merci de votre aide .

Yves

1 réponse

Avatar
SAM
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