JavaScript正则表达式,返回模式前后的所有内容

时间:2013-11-08 16:28:35

标签: javascript regex string

我需要返回没有特定数据的字符串(文件名),示例字符串是:

  • eng_somerset_yeovil_montacute-house_962.jpg
  • eng_south-yorkshire_barnsley_wentworth-castle_0.jpg
  • eng_staffordshire_harriseahead_mow-COP-castle_1329317.jpg
  • eng_somerset_weston超mare_marine湖-walkway_29113.jpg

需要按以下方式返回这些示例字符串:

  • eng_somerset_yeovil_montacute-house.jpg
  • eng_south-yorkshire_barnsley_wentworth-castle.jpg
  • eng_staffordshire_harriseahead_mow-COP-castle.jpg
  • eng_somerset_weston超mare_marine湖-walkway.jpg

我尝试使用下面的正则表达式,但我只看到模式并返回模式后:

filename = fl.replace(/(^.*?(?=[_]{1}[0-9]{1,10}))/gi, '');
  • _962.jpg
  • _0.jpg
  • _1329317.jpg
  • _29113.jpg

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

这个正则表达式应该有效:

var repl = str.replace(/_\d+(?=\.jpg$)/, "");

<强>测试

str = 'eng_somerset_yeovil_montacute-house_962.jpg';
var repl = str.replace(/_\d+(?=\.jpg$)/, "");
// eng_somerset_yeovil_montacute-house.jpg