Options
All
  • Public
  • Public/Protected
  • All
Menu

Module "utils/encodeUrl"

Index

Variables

Private Const ENCODE_CHARS_REGEXP

ENCODE_CHARS_REGEXP: RegExp = /(?:[^\x21\x25\x26-\x3B\x3D\x3F-\x5B\x5D\x5F\x61-\x7A\x7E]|%(?:[^0-9A-Fa-f]|[0-9A-Fa-f][^0-9A-Fa-f]|$))+/g

RegExp to match non-URL code points, after encoding (i.e. not including "%") and including invalid escape sequences.

Private Const UNMATCHED_SURROGATE_PAIR_REGEXP

UNMATCHED_SURROGATE_PAIR_REGEXP: RegExp = /(^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF]([^\uDC00-\uDFFF]|$)/g

RegExp to match unmatched surrogate pair.

Private Const UNMATCHED_SURROGATE_PAIR_REPLACE

UNMATCHED_SURROGATE_PAIR_REPLACE: "$1�$2" = "$1�$2"

String to replace unmatched surrogate pair with.

Functions

encodeUrl

  • encodeUrl(url: string): string
  • Encode a URL to a percent-encoded form, excluding already-encoded sequences.

    This function will take an already-encoded URL and encode all the non-URL code points. This function will not encode the "%" character unless it is not part of a valid sequence (%20 will be left as-is, but %foo will be encoded as %25foo).

    This encode is meant to be "safe" and does not throw errors. It will try as hard as it can to properly encode the given URL, including replacing any raw, unpaired surrogate pairs with the Unicode replacement character prior to encoding.

    Parameters

    • url: string

    Returns string

Generated using TypeDoc