我正在使用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', '.')
答案 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
),但就是这样。