Как найти определенные части строки из большого текста с помощью регулярных выражений на JS?
У меня есть текст типа этого:
const str = "font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype')";
мне нужно получить все ссылки на файлы внутри url в таком виде:
['../fonts/fontawesome-webfont.eot?v=4.7.0', '../fonts/fontawesome-webfont.eot?efix&v=4.7.0']
Как это можно сделать с помощью регулярных выражении?
Ответы (1 шт):
Автор решения: UModeL
→ Ссылка
Если формат входящих данных представлен верно и включает все возможные варианты, то выражение будет опираться на наличие url и скобок:
const sTXT = `font-family:'FontAwesome';
src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');
src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype');
src:url(http://fonts.com/fontawesome-webfont.eot) format('embedded-opentype');
src:url("../fonts/fontawesome-webfont.eot?v=4.7.0")
`;
const rEXP = /url\(("|')?(.+?)\1\)/g;
console.log( Array.from(sTXT.matchAll(rEXP), m => m[2]) );