Как обрезать строку после _ при помощи js regexp?

247
08 февраля 2018, 18:51

Есть строка вида:

total_photography_1990_1994

Нужно:

  1. обрезать строку после _ включительно с _ ;
    если в строке 2 _ то обрезать после 2го
  2. после _ забирать цифры и записывать в переменную;
    если в втроке 2 _ то забирать после 2го

Пробую так:

let prName = projectName.substring(0, projectName.indexOf('_'));

но в таком случае обрежет сразу после первого _ , как учесть, что может быть 2 _?

в результате хочу получить две переменные:

  1. total photography
  2. 1990-1994
Answer 1

let str = 'total_photography_1990_1994'; 
let arr= str.match(/[\D]+(?=[\_])|[\d]+_?[\d]+/g); 
console.log(arr);

Answer 2

str.lastIndexOf();

let prName = projectName.substring(0, projectName.lastIndexOf('_'));

на счет цифр

let nums = projectName.substring(projectName.lastIndexOf('_')+1);
//убераем из результата все кроме цифр
nums = nums.replace(/[^0-9]/gim,'');
READ ALSO
js/jquery focus textarea не работает

js/jquery focus textarea не работает

Как можно вызвать событие focus() для элемента textarea, средствами кода? Чтобы произошло тоже самое, как когда нажимаешь на поле textarea мышкойТо есть...

171
Как исправить importScripts is not defined?

Как исправить importScripts is not defined?

Возникла потребность подключить к сайту сервис рассылки push-уведомленийВ js-файле, предоставляемом сервисом для работы функционала, была...

233
Перемещение элемента массива в начало

Перемещение элемента массива в начало

Доброго времени суток, подвернулась такая задача переместить элемент массива в началоВроде сделал, но может есть более красивый способ переместить...

1286