1

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

  • 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-super-mare_marine-lake-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-super-mare_marine-lake-walkway.jpg

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

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

谢谢你的帮助。

4

1 回答 1

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
于 2013-11-08T16:31:45.460 回答