JSFiddle - React, Tailwind, and code Playground

by Sahin Deniz

JavaScript

let pattern = `\\bwhat.*full form of I[LNa-l]?S\\b`;

function ReplaceLetterAndNumberModifiers(_, modifier) {
  console.log(_, modifier);
  if (modifier.startsWith("-"))
    return modifier.toLowerCase();

  return `\\p{${modifier}}`
}

function ReplaceCharacterClasses(_, chars, qm) {
  //console.log(chars, qm);
  qm = qm == "\\?" ? "?" : "";
  return `[${chars}]${qm}`;
}

pattern = pattern.replace(/(?:\[)(.*?)(?:\])(\\\?)?/gm, ReplaceCharacterClasses);

console.log(new RegExp(pattern));