UNPKG

mathsteps-experimental-fork

Version:

Step by step math solutions. Experimental Fork

25 lines (23 loc) 1.02 kB
function makeExtendedRegExp(inputPatternStr, flags) { const cleanedPatternStr = inputPatternStr.replace(/(^|[^\\])#.*/g, "$1").replace(/(^|[^\\])\s+/g, "$1"); return new RegExp(cleanedPatternStr, flags); } const RGIntOrDecimal = makeExtendedRegExp(String.raw` \d+ # Match one or more digits (integer part) (?:\.\d+)? # Optionally match a decimal point followed by digits `, "g"); const RGVariable = makeExtendedRegExp(String.raw` [a-zA-Z] # Match one alphabetic characters `, "g"); const RGOptionalVariable = makeExtendedRegExp(String.raw` [a-zA-Z]? # Match one alphabetic characters or none `, "g"); const RGNumbersAndOrVar = makeExtendedRegExp(String.raw` (?:${RGIntOrDecimal.source}${RGOptionalVariable.source}) | (?:${RGVariable.source}) `, "g"); const RGFraction = makeExtendedRegExp(String.raw` (?:(${RGNumbersAndOrVar.source})\/)+(${RGNumbersAndOrVar.source}) `, "g"); export { RGFraction, RGIntOrDecimal, RGNumbersAndOrVar, RGOptionalVariable, RGVariable, makeExtendedRegExp };