замена регулярного выражения javascript не работает, но замена строки работает - PullRequest
6 голосов
/ 11 июля 2011

Я работаю с 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 Ответ

43 голосов
/ 11 июля 2011

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

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

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

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

...