Это было проверено на весе 3.5. На самом деле Rhino имеет String.prototype.lastIndexOf
для всех весёлых версий, начиная с версии 3.0. Вы правильно преобразовали строку java из sourceMap в строку javascript, однако в этом случае это не требуется.
Java строки совместно используют методы String.prototype, если их нет конфликт в имени метода. Сами строки Java имеют метод lastIndexOf, поэтому он вызывается в моем ответе. Строка java может без проблем заимствовать метод слайса из javascript. Метод javascript возвращает строку javascript.
Если по какой-то причине имя файла начинается с .
и не содержит никаких других, это не оставит вас с пустым именем файла.
var filename = $('originalFilename');
var index = filename.lastIndexOf('.');
if (index > 0) filename = filename.slice(0, index);
logger.info('filename: ' + filename);
При этом я не уверен, почему ваш оригинальный код не работал. Когда я заменил первую строку на
var originalFilename = new java.lang.String('2020049.259317052.HC.P.F3M147-G');
var _filename = String(originalFilename);
Это дало мне правильное значение pos 22.