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

JavaScript regular expression, return everything before and after a pattern

本文关键字:之后 正则表达式 返回 模式 JavaScript      更新时间:2023-09-26

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

  • 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房子.jpg
  • eng_south yorkshire_barnsley_wentworth城堡.jpg
  • eng_staffordshire_harriseahead_mow警察城堡.jpg
  • eng_somerset_weston超mare_marine湖步道.jpg

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

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

感谢您的帮助。

这个正则表达式应该可以工作:

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