javascript regexp替换不起作用,但字符串替换工作

时间:2011-07-11 06:55:12

标签: javascript jquery regex replace pattern-matching

我正在使用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 :(得分:40)

'/-[0-9]+x[0-9]+\./i'是一个字符串。

/-[0-9]+x[0-9]+\./i是正则表达式。

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

编辑另外,为了清楚起见,除了引号之外,你的正则表达式没有任何问题。如果您需要替换多个匹配项,可能需要考虑使用/g(即最后的/gi),但就是这样。