Regular Expressions 101

Community Library Entry

1

Regular Expression
ECMAScript (JavaScript)

/
e[yw][A-Za-z0-9-_]+\.(?:e[yw][A-Za-z0-9-_]+)?\.[A-Za-z0-9-_]{2,}(?:(?:\.[A-Za-z0-9-_]{2,}){2})?
/
g

Description

  • handles both JWS (3 segments) and JWE (5 segments)
    • remove the ending (?:(?:... to handle JWS only
  • segments 1+2 are expected tp start with e[yw], an encoded start of JSON object {" or {\n
    • remove/extend it to match used token structure
    • or make it even more restrictive (ey[IJ]|ewo) to match encoded {"\w or {\n"
  • payload (2nd segment) may be empty
  • both header (1st segment) and payload are expected to start with eyJ, a base64 encoded start of JSON object {"
  • accepts only proper Base64url encoding (RFC 4648) without Base64 padding =
  • test it at https://regex101.com/r/V99DS0
Submitted by iki - 6 months ago (Last modified 5 months ago)