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

gav*_*siu 7 javascript regex jquery 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', '.'));
Run Code Online (Sandbox Code Playgroud)

我不明白为什么这样的事情有效:

.replace('-500x277.', '.')
Run Code Online (Sandbox Code Playgroud)

但不是这个,我甚至用工具检查过并确保它有效且有效:

.replace('/-[0-9]+x[0-9]+\./i', '.')
Run Code Online (Sandbox Code Playgroud)

bry*_*mck 46

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

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

"hi".match('/hi/')  // returns null
"hi".match(/hi/)    // returns ["hi"]
Run Code Online (Sandbox Code Playgroud)

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

  • 呃,在试验和重读手册上浪费了时间,直到我来到这里才注意到缺少“”。 (4认同)
  • 哈哈,我花了 30 多分钟试图弄清楚为什么我的 '/regex/' 不起作用...... (3认同)