#javascript #node.js #angularjs
Вопрос:
Я пытаюсь удалить символы после цифр и должен включить расширение .pdf.
Я не могу использовать индекс, так как имя файла зависит от дат и имен.
Пример: Имя моего файла : 1316 марта и A — sec.pdf
Требуемое имя выходного файла: Mar1316.pdf
может ли кто-нибудь помочь с простым JavaScript для достижения вышеуказанного результата? Я попытался использовать метод замены и разделения, но не смог этого сделать.
Ответ №1:
var org = "Mar 1316 and A - sec.pdf";
org = org.replace(/ /g, '').replace(/(?<=d{4}).*(?=.)/g, '');
https://www.w3schools.com/jsref/jsref_obj_regexp.asp
Вы можете сделать это с помощью регулярных выражений. Позитивный взгляд сзади (? Точка представляет собой один символ, а звездочка является модификатором для поиска нуля или более случаев. Итак .* смотрит на ноль или более символов, которым предшествуют 4 цифры или d{4}, а затем следует точка. Первая замена использовалась для предварительного удаления всех пробелов, для простоты. Буква g, которую вы видите после второй прямой косой черты, является глобальным модификатором, который заменит все случаи, а не только первый.
Примечание: Заголовок для точки необходимо экранировать, используя символ обратной косой черты, поскольку это специальный символ.
Комментарии:
1. Привет, я пытаюсь использовать вышеприведенную логику в своем коде, что приводит к синтаксической ошибке? String.prototype.replaceAll = функция(поиск, замена) { цель var = это; возвращаемая цель.разделить(поиск).присоединиться(замена); }; var str = имя; str = str.заменить(/ /g, «).заменить(/(? <=д{4}).*(?=.)/г, «); новое_имя = ул.;
2. jsfiddle.net/1jrkxy8o Попробуйте поиграть в этом, чтобы посмотреть, сможете ли вы понять, что не работает. Без дополнительного контекста и конкретного сообщения об ошибке трудно точно сказать, что пошло не так.