fixedencodeuriccomponent请求解释



我想知道是否有人可以解释这个功能给我?我已经测试过了,它像梦一样工作,但我不明白是怎么回事!

来自MDN参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent

function fixedEncodeURIComponent (str) {
  return encodeURIComponent(str).replace(/[!'()]/g, escape).replace(/*/g, "%2A");
}

我理解为替换之后的匹配,我正在努力的是转义引用和二次替换,这导致实际编码值替换字符,例如(= %28和)= %29。

对"escape"的引用只是对该名称的全局函数的引用。如果.replace()的第二个参数是一个函数,那么JavaScript将匹配的字符串传递给函数,并将其替换为函数返回的任何内容。

试着打字

escape("!")