2013-11-08 1 views
1

у меня есть необходимость вернуть строку (имя файла) без определенных данных, пример строки:JavaScript регулярное выражение, вернуть все до и после того, как шаблон

  • eng_somerset_yeovil_montacute-house_962.jpg
  • eng_south-yorkshire_barnsley_wentworth -castle_0.jpg
  • eng_staffordshire_harriseahead_mow-коп-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-Коп-castle.jpg
  • eng_somerset_weston- super-mare_marine-lake-walkway.jpg

Я попытался использовать регулярное выражение ниже, но я вижу только pa ttern и после того, как шаблон вернулся:

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

Спасибо за вашу помощь.

+0

В этом случае я думаю, что это более проще и быстрее (производительность) просто использовать .lastIndexOf ("_"), чтобы найти конечную часть имени. –

ответ

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 
+0

спасибо, что отлично работает –

+0

Добро пожаловать, рад, что это сработало для вас. – anubhava

Смежные вопросы