Выбрать со строки только правила CSS

231
24 мая 2017, 07:29

Есть строка в которой несколько правил CSS. Пример:

".sleep span,body{text-align:center}body{background-color:#EBD8D0;height:100%;margin:0}"

Как убрать все селекторы и оставить только правила и их значения?

Answer 1

Спасибо пользователю AGS17, за подсказку)

const regex = /{[ \n]*(.+?)[ \n]*}/gm;
const str = `html{height:100%}body{display:flex;min-height:100%;font:100 normal 16px/1.6 georgia,times,serif;background:#111}#db{display:none}canvas{display:block;margin:0 auto;align-self:flex-start}.btn{font-size:inherit;width:140px}.info-popup-container{display:inline-block;position:relative}}`;
let m;
while ((m = regex.exec(str)) !== null) {
    // This is necessary to avoid infinite loops with zero-width matches
    if (m.index === regex.lastIndex) {
        regex.lastIndex++;
    }
    // The result can be accessed through the `m`-variable.
    m.forEach((match, groupIndex) => {
        console.log(`Found match, group ${groupIndex}: ${match}`);
    });
}

Кому нужно вот реализация - https://jsfiddle.net/npzaygn4/2/

Answer 2

Попробуйте regex:

{(.+?)}

function getSelectors(source) { 
  const template = /{(.+?)}/g; 
  let match; 
  let output = []; 
  while (match = template.exec(source)) { 
    output.push(match[1]); 
  } 
 
  return output; 
} 
 
var results = getSelectors(".sleep span,body{text-align:center}body{background-color:#EBD8D0;height:100%;margin:0}"); 
console.log(JSON.stringify(results));

READ ALSO
вопрос по classList.toggle

вопрос по classList.toggle

как сделать что бы при нажатии на div с классом test у элемента c айди test убирался класс foo если он был до этого установлен , и если нажать на элемент...

238
переход на страницу выбраную в select [требует правки]

переход на страницу выбраную в select [требует правки]

есть селект, со списком категорий, как сделать автоматический переход на выбранную категорию? без кнопок

220
Нужна помощь в написании функции JS

Нужна помощь в написании функции JS

Есть задание - "Написать фунцию concat (), которая принимает любое количество аргументов и объединяет их в одну строкуСимвол разделения по умолчанию...

241
.getHours() для переменной

.getHours() для переменной

Планирую получить значение времени (часов) и если оно больше определённого значения то один вариант действий, если меньше то другой, ниже...

269