Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.03.2020, 15:29
Новичок на форуме
Отправить личное сообщение для Nicanor13 Посмотреть профиль Найти все сообщения от Nicanor13
 
Регистрация: 18.03.2020
Сообщений: 9

Строка валидации CSS
Дана строка в котором написана CSS код. И надо выяснить в нем все правильно написано или нет?

Например
div > p {
	color: red;
	font-size 14px;
}


В вышеуказанном примере есть ошибка так как после font-size нет двоеточия. В задаче предпологается что значения парамтеров (red, 14px и т.д.) всегда переданы правильно.

Нужно написать функцию, которая строкой получает CSS код и возврощает true/false (только для этих 12 случиях) в зависимости от того CSS код написан правильно или нет.

function  validateCSS(){}
console.log(validateCSS(" div > p { color:red;  font-size  14px; } "))    // false
console.log(validateCSS("{ color: red }"))    // false
console.log(validateCSS("p { color: red;  }"))    // true
console.log(validateCSS("p { color: red  font-size: 14px; }"))    // false
console.log(validateCSS("p: first-child a { color: red; }"))    // true
console.log(validateCSS("a: not (.red):last-child {color: red; background: red; border: 1px solid red; }"))    // true
console.log(validateCSS(“div > p”));    // false
console.log(validateCSS(“div > p {}”));    // true
console.log(validateCSS(“div > p {color: red, background color: green;}”));    // false
console.log(validateCSS(“a {display: block;}”));    // true
console.log(validateCSS(“a {display-block;}”);   // false
console.log(validateCSS(“a {dis play-block;}”);   // false


Поможете решить задачу?

Последний раз редактировалось Nicanor13, 19.03.2020 в 20:03.
Ответить с цитированием
  #2 (permalink)  
Старый 19.03.2020, 16:15
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

Сообщение от Nicanor13
В задаче предпологается что значения парамтеров (red, 14px и т.д.) всегда переданы правильно.
там и без этого гигантская кухня.
дохрена всяких комбинаций селекторов, особенно доставляют селекторы атрибутов.
@-правила (медиазапросы, чарсеты и т.д.)
большой набор тегов.
псевдоклассы, псевдоэлементы.
свойства вроде content, которые должны быть внутри псевдоэлементов, и внутри значения которых надо пропустить точку с запятой.
опять же, составить словарь тегов и названий свойств.

нет, определенно, лет 15 назад можно было такую задачу с полпинка решить, но не сейчас

ну а так, понятное дело, регексы плюс некий конечный автомат с состояниями...
Ответить с цитированием
  #3 (permalink)  
Старый 19.03.2020, 21:51
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,588

https://www.npmjs.com/package/postcss-validator
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Плавающий блок, замирающий над определенным элементом. Как поправить? ozoro jQuery 4 02.02.2020 00:27
Нужна раскрывающаяся таблица 7Lexus Элементы интерфейса 23 15.08.2014 15:15
Предполагается наличие ';' в IE7- FINoM (X)HTML/CSS 5 25.08.2012 16:05
JQuery CSS анализатор javascript jQuery 2 15.08.2010 21:27
Подскажите по CSS меню Александр_1988 Элементы интерфейса 1 17.05.2010 11:58