2011-10-06 19 views
13

Decir que tengo el siguiente:.¿Hay un equivalente en jQuery a `preg_replace()` de PHP?

<img src="http://www.site.com/folder/pic.jpg"> 

Este camino podría ser cualquier cosa, que básicamente quiere conseguir la "pic.jpg como una variable

Actualmente lo estamos haciendo de este modo:

var first_img = $("#thumbnail-area li:first").find("img").attr("title"); 

que establece la variable first_img como el src de la imagen, sino que queremos hacer un partido preg cosa un poco como en PHP para agarrar el "pic.jpg".

Esto tiene que funcionar correctamente, por lo que la ruta podría ser: folder/foo/bar/x982j/second822.jpg y devolvería second822.jpg

¿Cómo puedo hacer esto?

Respuesta

19

Usted podría utilizar replace() que es como PHP de preg_replace() (también acepta un PCRE, con algunas limitaciones, como no hay traseros mirada) ...

str.replace(/.*\//, '') 

jsFiddle.

Alternativamente, se puede utilizar ...

str.split('/').pop(); 

jsFiddle.

+0

Perfecto, salvavidas. – Latox

1

Ejemplo de trabajo aquí: http://jsfiddle.net/jkeyes/sxx3T/

var re = new RegExp(".*\/(.*)$"); 
var src="folder/foo/bar/x982j/second822.jpg"; 
var m = re.exec(src); 
alert(m[1]); // first group 
+0

el enlace a jsfiddle para mostrar que funciona bien, pero también debería publicar el código aquí en la respuesta, especialmente cuando es tan breve como este. – Spudley

+0

Lo hice, lo edité casi de inmediato después de responder. –

5

jQuery no es necesario en este caso; Javascript admite expresiones regulares por sí mismo, por lo que jQuery no es parte de la respuesta.

La función de reemplazo de expresiones regulares de Javascript simplemente se llama .replace(), y es un método en la clase de cadena. Lo usaría de la siguiente manera:

var mystring = 'this is a string'; 
mystring.replace(/is a/,'might be a'); 
//mystring is now equal to 'this might be a string'. 

Eso debería ser suficiente para que comience. Dado que hizo referencia al preg_replace() en la pregunta, supongo que ya sabe cómo usar expresiones regulares lo suficientemente bien como para no necesitar una discusión detallada de cómo resolver su ejemplo específico.

+0

var mystring = 'esto es una cadena'; mystring = mystring.replace (/ es ​​un /, 'podría ser un'); – czLukasss

Cuestiones relacionadas