volkov_p_v
@volkov_p_v
FrontEnd разработчик

Как получить массив искомых строк в строке?

Есть текст (обычная стринга)
Lorem ipsum 'vendor/js/srcipt.js' dolor sit amet,  'lib/ls/jquery/jquery.min.js' consectetur 'img/pict.jpg' adipisicing 'vendor/style/some-style.min.css' elit. Adipisci, tenetur?


Из него нужно получить массив из ссылок, которые начинаются на vendor и заканчиваются на js или css, но без слово vendor
Т.е. в конечно итоге должно получится так:
['js/srcipt.js', 'style/some-style.min.css']

Как это сделать?
Заранее благодарен.
  • Вопрос задан
  • 230 просмотров
Решения вопроса 3
@OVK2015
var testStr = "Lorem ipsum 'vendor/js/srcipt.js' dolor sit amet,  'lib/ls/jquery/jquery.min.js' consectetur 'img/pict.jpg' adipisicing 'vendor/style/some-style.min.css' 'vendor/style/some-style.less' или 'vendor/img/bla.png' elit. Adipisci, tenetur?";
var reqExpWrapper = new RegExp('(?:vendor/)((?:.*?)\\.(?:css|js))\'', 'g');

var matches = new Array();

while(match = reqExpWrapper.exec(testStr))
{
	matches.push(match[1]);
}
console.log(matches);
Ответ написан
DevMan
@DevMan
var str = "Lorem 'vendor/img/pict.jpg' ipsum 'vendor/js/srcipt.js' dolor sit amet,  'lib/ls/jquery/jquery.min.js' consectetur 'img/pict.jpg' adipisicing 'vendor/style/some-style.min.css' elit. Adipisci, tenetur?";
var re = /'vendor\/(\S?\.(?:css|js))'/g; 
var m, matches = [];
 
while(m = re.exec(str)) {
    matches.push(m[1]);
}
console.log(matches);
https://jsfiddle.net/jmsa75zj/
Ответ написан
Комментировать
mannaro
@mannaro Куратор тега JavaScript
Умею профессионально гуглить
var str = "Lorem...";
var regex = /'vendor\/(.+?\.(?:css|js))'/g;
var matches = [];
var match;

while(match = regex.exec(str)) matches.push(match[1]);

console.log(matches);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы