tablas - Obtener el valor de una cadena después de una barra en JavaScript
obtener datos de una tabla html javascript (9)
Ya lo intento durante más de una hora y no puedo encontrar la manera correcta de hacerlo, aunque probablemente sea bastante fácil:
Tengo algo como esto: foo/bar/test.html
Me gustaría usar jQuery para extraer todo después del último /
. En el ejemplo anterior, el resultado sería test.html
.
Supongo que se puede hacer usando substr
e indexOf()
, pero no puedo encontrar una solución funcional.
Como se requiere en Question ::
var string1= "foo/bar/test.html";
if(string1.contains("/"))
{
var string_parts = string1.split("/");
var result = string_parts[string_parts.length - 1];
console.log(result);
}
y para la pregunta formulada en url (se preguntó por una ocurrencia de ''='') ::
[ http://.com/questions/24156535/how-to-split-a-string-after-a-particular-character-in-jquery][1]
var string1= "Hello how are =you";
if(string1.contains("="))
{
var string_parts = string1.split("=");
var result = string_parts[string_parts.length - 1];
console.log(result);
}
Al menos tres formas:
Una expresión regular:
var result = /[^/]*$/.exec("foo/bar/test.html")[0];
... que dice "tomar la serie de caracteres que no contienen una barra" ( [^/]*
) al final de la cadena ( $
). A continuación, toma los caracteres coincidentes del objeto de coincidencia devuelto indizando en él ( [0]
); en un objeto de coincidencia, la primera entrada es la secuencia combinada completa. No hay necesidad de grupos de captura.
Usando lastIndexOf
y substring
:
var str = "foo/bar/test.html";
var n = str.lastIndexOf(''/'');
var result = str.substring(n + 1);
lastIndexOf
hace lo que parece: encuentra el índice de la última aparición de un carácter (bien, cadena) en una cadena, devolviendo -1 si no se encuentra. Nueve veces de cada diez es probable que desee comprobar el valor de retorno ( if (n !== -1)
), pero en el ejemplo anterior, ya que estamos agregando 1 y llamando a la subcadena, terminaríamos haciendo str.substring(0)
que simplemente devuelve la cadena.
Usando Array#split
Sudhir y Tom Walters tienen esto cubierto here y here , pero solo para completarlo:
var parts = "foo/bar/test.html".split("/");
var result = parts[parts.length - 1]; // Or parts.pop();
split
divide una cadena usando el delimitador dado, devolviendo una matriz.
La solución lastIndexOf
/ substring
es probablemente la más eficiente (aunque siempre hay que tener cuidado al decir algo sobre JavaScript y el rendimiento, ya que los motores varían tan radicalmente entre sí), pero a menos que lo haga miles de veces en un bucle, no importa y me esforzaré por la claridad del código.
Cuando sé que la cuerda va a ser razonablemente corta, utilizo el siguiente forro ... (recuerde escapar de las barras invertidas)
// if str is C:/windows/file system/path/picture name.jpg
alert( str.split(''//').pop() );
alerta picture name.jpg
con nombre de picture name.jpg
Jquery:
var afterDot = value.substr(value.lastIndexOf(''_'') + 1);
Javascript:
var myString = ''asd/f/df/xc/asd/test.jpg''
var parts = myString.split(''/'');
var answer = parts[parts.length - 1];
console.log(answer);
Reemplazar ''_'' || ''/'' a su propia necesidad
No necesita jQuery, y hay varias maneras de hacerlo, por ejemplo:
var parts = myString.split(''/'');
var answer = parts[parts.length - 1];
Donde myString contiene tu cadena.
Tratar;
var str = "foo/bar/test.html"; var tmp = str.split("/"); alert(tmp.pop());
peso ligero
string.substring(start,end)
dónde
start = Required
. La posición donde comenzar la extracción. El primer personaje está en el índice 0`.
end = Optional
. La posición (hasta, pero sin incluir) dónde finalizar la extracción. Si se omite, extrae el resto de la cadena.
var string = "var1/var2/var3";
start = string.lastIndexOf(''/''); //console.log(start); o/p:- 9
end = string.length; //console.log(end); o/p:- 14
var string_before_last_slash = string.substring(0, start);
console.log(string_before_last_slash);//o/p:- var1/var2
var string_after_last_slash = string.substring(start+1, end);
console.log(string_after_last_slash);//o/p:- var3
O
var string_after_last_slash = string.substring(start+1);
console.log(string_after_last_slash);//o/p:- var3
String path ="AnyDirectory/subFolder/last.htm";
int pos = path.lastIndexOf("/") + 1;
path.substring(pos, path.length()-pos) ;
Ahora tiene el last.htm en la cadena de ruta.
var str = "foo/bar/test.html";
var lastSlash = str.lastIndexOf("/");
alert(str.substring(lastSlash+1));