2011-07-11 13 views
6

Estoy trabajando con jQuery y estoy tratando de escribir un patrón de reemplazo, pero no funciona. Tengo esto:javascript regexp reemplazar no funciona, pero el reemplazo de cadena funciona

var $featured_rewrite = $('#featured').not('.slideshow'); 
$featured_rewrite.children().attr('href', $featured_rewrite.find('img').attr('src').replace('/-[0-9]+x[0-9]+\./i', '.')); 

No entiendo por qué algo como esto funciona:

.replace('-500x277.', '.') 

pero no esto, que incluso he comprobado con una herramienta y se aseguró de que era válido y funciona:

.replace('/-[0-9]+x[0-9]+\./i', '.') 

Respuesta

35

'/-[0-9]+x[0-9]+\./i' es una cadena.

/-[0-9]+x[0-9]+\./i es regex.

"hi".match('/hi/') // returns null 
"hi".match(/hi/) // returns ["hi"] 

Editar: También, para ser claros, no hay nada malo con su expresión regular aparte de las cotizaciones. Es posible que desee considerar el uso de /g (es decir, /gi al final) si necesita reemplazar más de una coincidencia, pero eso es todo.

+0

+1 bryan, buena captura – kobe

+1

Esto me ayudó, gracias. – RTF

+0

Uhh, hora perdida en ensayos y releyendo manuales, nunca noté la ausencia de '' hasta que vine aquí. – Sandman4

Cuestiones relacionadas