You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
10 lines
458 B
10 lines
458 B
export default function ansiRegex({onlyFirst = false} = {}) { |
|
// Valid string terminator sequences are BEL, ESC\, and 0x9c |
|
const ST = '(?:\\u0007|\\u001B\\u005C|\\u009C)'; |
|
const pattern = [ |
|
`[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?${ST})`, |
|
'(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))', |
|
].join('|'); |
|
|
|
return new RegExp(pattern, onlyFirst ? undefined : 'g'); |
|
}
|
|
|