url中特殊字符转义为原始字符

1.参数信息在url中传递的时候url里面的特殊字符转义的情况,但是在加载的时候可能会无法加载转义后的url信息

转译规则

     空格 用%20代替

     " 用%22代替

     # 用%23代替

    % 用%25代替

    &用%26代替

    ( 用%28代替

    ) 用%29代替

   + 用%2B代替

    , 用%2C代替

    / 用%2F代替

    : 用%3A代替

    ; 用%3B代替

   < 用%3C代替

   = 用%3D代替

   > 用%3E代替

   ? 用%3F代替

   @ 用%40代替

    \ 用%5C代替

    | 用%7C代替

url中特殊字符转义为原始字符函数

function decodeUrl (url) {
  const codes = [
    {
      key: '%20',
      value: ' '
    },
    {
      key: '%22',
      value: '\'\''
    },
    {
      key: '%23',
      value: '#'
    },
    {
      key: '%25',
      value: '%'
    },
    {
      key: '%26',
      value: '&'
    },
    {
      key: '%28',
      value: '('
    },
    {
      key: '%29',
      value: ')'
    },
    {
      key: '%2B',
      value: '+'
    },
    {
      key: '%2C',
      value: ','
    },
    {
      key: '%2F',
      value: '/'
    },
    {
      key: '%3A',
      value: ':'
    },
    {
      key: '%3B',
      value: ';'
    },
    {
      key: '%3C',
      value: '<'
    },
    {
      key: '%3D',
      value: '='
    },
    {
      key: '%3E',
      value: '>'
    },
    {
      key: '%3F',
      value: '?'
    },
    {
      key: '%40',
      value: '@'
    },
    {
      key: '%5C',
      value: '\\'
    },
    {
      key: '%7C',
      value: '|'
    },
  ];
  for (let item of codes) {
    if (url.includes(item.key)) {
      const targetValue = url.replace(item.key, item.value);
      return this.decodeUrl(targetValue);
    }
  }
  return url;
};

你可能感兴趣的:(url中特殊字符转义为原始字符)