I'm working with jQuery and am trying to write a pattern replace, but it doesn't work. I have this:
var $featured_rewrite = $('#featured').not('.slideshow');
$featured_rewrite.children().attr('href', $featured_rewrite.find('img').attr('src').replace('/-[0-9]+x[0-9]+\./i', '.'));
I don't understand why something like this works:
.replace('-500x277.', '.')
but not this, which I even checked with a tool and made sure it was valid and works:
.replace('/-[0-9]+x[0-9]+\./i', '.')
'/-[0-9]+x[0-9]+\./i'
is a string.
/-[0-9]+x[0-9]+\./i
is regex.
"hi".match('/hi/') // returns null
"hi".match(/hi/) // returns ["hi"]
Edit: Also, just to be clear, there's nothing wrong with your regex other than the quotes. You may want to consider using /g
(i.e. /gi
at the end) if you need to replace more than one match, but that's it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With