Au moins trois façons:
Une expression régulière:
var result = /[^/]*$/.exec("foo/bar/test.html")[0];
... qui dit "saisissez la série de caractères ne contenant pas de barre oblique" ( [^/]*
) à la fin de la chaîne ( $
). Ensuite, il récupère les caractères correspondants de l'objet de correspondance retourné en les indexant ( [0]
); dans un objet de correspondance, la première entrée est l'ensemble de la chaîne correspondante. Pas besoin de groupes de capture.
Exemple en direct
Utilisation lastIndexOf
et substring
:
var str = "foo/bar/test.html";
var n = str.lastIndexOf('/');
var result = str.substring(n + 1);
lastIndexOf
fait ce que ça donne: il trouve l'index de la dernière occurrence d'un caractère (enfin, chaîne) dans une chaîne, renvoyant -1 s'il n'est pas trouvé. Neuf fois sur dix, vous voudrez probablement vérifier cette valeur de retour ( if (n !== -1)
), mais dans ce qui précède, puisque nous y ajoutons 1 et appelons substring, nous finirions par faire str.substring(0)
ce qui renvoie simplement la chaîne.
En utilisant Array#split
Sudhir et Tom Walters ont cela couvert ici et ici , mais juste pour être complet:
var parts = "foo/bar/test.html".split("/");
var result = parts[parts.length - 1]; // Or parts.pop();
split
divise une chaîne en utilisant le délimiteur donné, retournant un tableau.
La solution lastIndexOf
/ substring
est probablement la plus efficace (même s'il faut toujours faire attention à ne rien dire sur JavaScript et les performances, car les moteurs varient si radicalement les uns des autres), mais à moins que vous ne le fassiez des milliers de fois en boucle, cela ne peu importe et je m'efforcerais de clarifier le code.
Vous n'avez pas besoin de jQuery, et il existe de nombreuses façons de le faire, par exemple:
Où myString contient votre chaîne.
la source
la source
Essayer;
la source
Quand je sais que la chaîne sera raisonnablement courte, j'utilise la doublure suivante ... (n'oubliez pas d'échapper les contre-obliques)
l'alerte apparaît avec
picture name.jpg
la source
Vous avez maintenant le dernier.htm dans la chaîne de chemin.
la source
poids léger
où
start = Required
. La position où commencer l'extraction. Le premier caractère est à l'index 0`.end = Optional
. La position (jusqu'à, mais non comprise) où terminer l'extraction. S'il est omis, il extrait le reste de la chaîne.OU
la source
Jquery:
Javascript:
Remplacer «_» || '/' à votre propre besoin
la source
et pour la question posée sur l'url (demandé pour une occurrence de '=') ::
[ http://stackoverflow.com/questions/24156535/how-to-split-a-string-after-a-particular-character-in -jquery] [1]
la source
Essaye ça:
la source