An Альтернатива ES6 без использования регулярных выражений заключалась бы в использовании String.prototype.substring
и String.prototype.lastIndexOf
:
myString.substring(0, myString.lastIndexOf('/'))
Итак, почему вы должны использовать это?
var myString = 'http://domain.com/images/1/10/104/104901/7.jpg';
console.time("With regex");
console.log(myString.replace(/[^/]+$/, ''));
console.timeEnd("With regex"); // outputs 0.94ms
console.time("With String methods");
console.log(myString.substring(0, myString.lastIndexOf('/')));
console.timeEnd("With String methods"); // outputs 0.53ms
Benchmark, выполненный в Firefox на моем компьютере, но результаты должны быть одинаковыми во всем мире.
(Без регулярного выражения: зеркальная строка, найдите первую косую черту, отбросьте все до этого, снова верните строку.) – Stormwind
'^ (. + \ /) [^ \ /] * $' – arkascha
@arkascha К сожалению, не повезло с этим: http://regexr.com/3dg17 – Lanti