69db4f09eeeefaac2db75ccacb6f8d3d7e81d1db5e66a0042fd7942cee2ff79fc8392ba837aa7f8ea1516254f3898da2531b19e31a2437b0250cef1330ff53 458 B

12345678910
  1. export default function ansiRegex({onlyFirst = false} = {}) {
  2. // Valid string terminator sequences are BEL, ESC\, and 0x9c
  3. const ST = '(?:\\u0007|\\u001B\\u005C|\\u009C)';
  4. const pattern = [
  5. `[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?${ST})`,
  6. '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))',
  7. ].join('|');
  8. return new RegExp(pattern, onlyFirst ? undefined : 'g');
  9. }