javascript regexp replace не работает, но строка replace работает

Я работаю с jQuery и пытаюсь написать замену шаблона, но это не работает. У меня вот что:

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

Я не понимаю, почему что-то вроде этого работает:

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

но не это, что я даже проверил с помощью инструмента и убедился, что он действителен и работает:

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

1 ответов


'/-[0-9]+x[0-9]+\./i' - это строка.

/-[0-9]+x[0-9]+\./i регулярным выражением.

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

Edit: кроме того, чтобы быть ясным, нет ничего плохого в вашем регулярном выражении, кроме кавычек. Возможно, вы захотите использовать /g (т. е. /gi в конце), если вам нужно заменить более одного матча, но это все.