Skip to content
On this page

regexp primitive

Signature

ts
function regexp(rs: RegExp, expected: string): Parser<string>

Description

regexp parses a string that matches a provided re regular expression. Returns the matched string, or fails with an expected message.

Implementation notes

WARNING

If g flag is missing, it will be automatically injected. It's still better to always provide it to avoid small performance penalty and clearly document the intention.

The regular expression must obey two simple rules:

  • It does use g flag. Flags like u and i are allowed and can be added if needed.
  • It doesn't use ^ and $ to match at the beginning or at the end of the text.

Usage

ts
const Parser = regexp(/\p{Emoji_Presentation}/gu, 'emoji')

Success

ts
run(Parser).with('👌')

{
  isOk: true,
  span: [ 0, 2 ],
  pos: 2,
  value: '👌'
}

Failure

ts
run(Parser).with('')

{
  isOk: false,
  span: [ 0, 0 ],
  pos: 0,
  expected: 'emoji'
}