Здесь уже слишком много сложных ответов, но достаточно простой строки (ES5):
Date.prototype.isValid = function (d) { return !isNaN(Date.parse(d)) } ;
или даже в ES6:
Date.prototype.isValid = d => !isNaN(Date.parse(d));
В CSS 2.1 (это то, что следует использовать в наши дни) функция attr немного ограничена в возможностях. Единственное место, где он может появиться, - это свойство content на : before и: after псевдоэлементы . Таким образом, его единственная цель - генерировать контент .
В CSS 3 этот немного изменился , в том смысле, что attr () может возвращать другие типы, кроме строк, и его можно использовать для других свойства также.
Но имейте в виду, что большая часть CSS 3 все еще является рабочим проектом с очень немногими функциями (не включая Values and Units ), которые являются кандидатами в рекомендации. Поддержка пользовательскими агентами функций CSS 3 в настоящее время варьируется от ограниченной до практически отсутствующей. В основном производители браузеров борются со скукой, внедряя «крутые штуки», такие как закругленные границы, тень текста и т. Д., Что не означает большой работы по их поддержке. Но то, что вы здесь видели, определенно выходит за рамки этого, и статус WD не изменится в ближайшем будущем. Так что не ожидайте, что это будет где-то реализовано.