UNPKG

judocss

Version:

The functional CSS toolkit designed for minimal effort and maximum efficiency.

37 lines (24 loc) 862 B
"use strict"; (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; })();