x.length-4
учитывает только расширения с 3 символами. Что делать, если у вас есть filename.jpeg
или filename.pl
?
EDIT:
Чтобы ответить ... конечно, если у вас всегда есть расширение .jpg
, x.length-4
будет работать нормально.
Однако, если вы не знаете длину своего расширения, любое из ряда решений лучше / надежнее.
x = x.replace(/\..+$/, '');
OR
x = x.substring(0, x.lastIndexOf('.'));
ИЛИ
x = x.replace(/(.*)\.(.*?)$/, "$1");
ИЛИ (при условии, что имя файла имеет только одну точку)
parts = x.match(/[^\.]+/);
x = parts[0];
ИЛИ (также только с одной точкой)
parts = x.split(".");
x = parts[0];