2015-06-18 3 views
1

У меня есть этот образ URL, с типичными размерами изображения в них и нужно лишить тех, чтобы получить изображение URL-адрес чистыйрегулярное выражение: размеры полосы изображения из URL

Я думаю, что есть кое-что: https://www.regex101.com/r/qS5aR8/2

Просто хотел спросить, есть ли что-то, что можно улучшить и узнать?

var test_arr = [ 
    "http://url.com/0304-parapente-lagoon-Reunion-96x64.jpg", 
    "http://url.com/0304-parapente-lagoon-Reunion-960x640.jpg", 
    "http://url.com/0304-parapente-lagoon-Reunion-1500x1000.jpg", 
    "http://url.com/0304-parapente-lagoon-Reunion-1280x840-960x640.jpg", 
    "http://url.com/0304-parapente-lagoon-Reunion.jpg", 
    "http://url.com/520963918_960x540.jpg" 
] 
for (i = 0; i < test_arr.length; i++) { 
    console.log(test_arr[i].replace(/(-?_?[0-9]+x[0-9])\w+/g, "")); 
} 

ответ

3

Я предлагаю вам использовать это,

.replace(/(?:[-_]?[0-9]+x[0-9]+)+/g, "") 

DEMO

+0

С флагом 'g' окончательный' + 'не нужен. – Xufox

+0

'(?: [-_]? [0-9] + x [0-9] +) + (? = \. \ W + $)' или '(?: [-_]? [0-9] + x [0-9] +) + (? = \. jpg $) ', https://www.regex101.com/r/qS5aR8/5. здесь необходим модификатор 'm'. –

+0

@Xufox не знает, что убирать op хочет удалить все форматы, как показано выше. –

1

Я бы сделать его более надежным путем поиска между 2 и 4 цифр:

[_-]?\d{2,4}x\d{2,4} 

\d составляет 3 буквы меньше [0-9]. :)

+0

хороший вызов, чтобы он стал:'/(?: [-_]? \ D {2,4} x \ d {2,4}) + (? = \. jpg $)/gm' – FFish

+0

Да, можно также удалить '?:'. – bjfletcher