Pelo menos três maneiras:
Uma expressão regular:
var result = /[^/]*$/.exec("foo/bar/test.html")[0];
... que diz "pegue a série de caracteres que não contém uma barra" ( [^/]*
) no final da string ( $
). Em seguida, ele captura os caracteres correspondentes do objeto de correspondência retornado, indexando nele ( [0]
); em um objeto de correspondência, a primeira entrada é toda a string correspondida. Não há necessidade de grupos de captura.
Exemplo vivo
Usando lastIndexOf
e substring
:
var str = "foo/bar/test.html";
var n = str.lastIndexOf('/');
var result = str.substring(n + 1);
lastIndexOf
faz o que parece que faz: encontra o índice da última ocorrência de um caractere (bem, string) em uma string, retornando -1 se não for encontrado. Nove em cada dez vezes, você provavelmente deseja verificar o valor de retorno ( if (n !== -1)
), mas acima, uma vez que estamos adicionando 1 a ele e chamando a substring, acabaríamos fazendo o str.substring(0)
que apenas retorna a string.
Usando Array#split
Sudhir e Tom Walters cobrem isso aqui e aqui , mas apenas para completar:
var parts = "foo/bar/test.html".split("/");
var result = parts[parts.length - 1]; // Or parts.pop();
split
divide uma string usando o delimitador fornecido, retornando uma matriz.
A solução lastIndexOf
/ substring
é provavelmente a mais eficiente (embora seja sempre necessário ter cuidado ao dizer qualquer coisa sobre JavaScript e desempenho, uma vez que os motores variam tão radicalmente um do outro), mas a menos que você esteja fazendo isso milhares de vezes em um loop, não não importa e eu lutaria pela clareza do código.
Você não precisa do jQuery, e existem várias maneiras de fazer isso, por exemplo:
Onde myString contém sua string.
fonte
fonte
Experimentar;
fonte
Quando eu sei que a string vai ser razoavelmente curta, eu uso o seguinte liner ... (lembre-se de escapar das barras invertidas)
alerta aparece com
picture name.jpg
fonte
Agora você tem o last.htm na string do caminho.
fonte
peso leve
Onde
start = Required
. A posição onde iniciar a extração. O primeiro caractere está no índice 0`.end = Optional
. A posição (até, mas não incluindo) onde terminar a extração. Se omitido, ele extrai o resto da string.OU
fonte
Jquery:
Javascript:
Substitua '_' || '/' para sua própria necessidade
fonte
e para perguntas feitas no url (solicitadas para uma ocorrência de '=') ::
[ http://stackoverflow.com/questions/24156535/how-to-split-a-string-after-a-particular-character-in -jquery] [1]
fonte
Experimente isto:
fonte