judocss
Version:
The functional CSS toolkit designed for minimal effort and maximum efficiency.
37 lines (24 loc) • 862 B
JavaScript
;
(function () {
var byAscendingLength = function byAscendingLength(a, b) {
return a.length - b.length;
};
var replaceDollarVarsWithCapturingGroups = function replaceDollarVarsWithCapturingGroups(str, dollarVars) {
var capture = "([A-Za-z0-9%#.\-]+)";
var i = dollarVars.length;
dollarVars.sort(byAscendingLength);
while (i--) {
str = str.replace(dollarVars[i], capture);
}
return str;
};
var queryModifierCapture = "(?:--(?:small|medium|large|small-only|medium-only))?";
var classRegex = function classRegex(str) {
var dollarVars = str.match(/(\$([A-Za-z0-9]+)[^\-\_]?)/g);
if (dollarVars) {
str = replaceDollarVarsWithCapturingGroups(str, dollarVars);
}
return new RegExp('^' + str + queryModifierCapture + "(?:\\*)?" + '$');
};
module.exports = classRegex;
})();