首页 > 解决方案 > 在 base64url 编码之前,是否有将 `+` 和 `/` 转换为 `-` 和 `_` 的原生 JS 方法?它是什么?

问题描述

我正在阅读代码库,并注意到作者根据 base64url 规范在 base64url 编码之前手动使用替换来清理字符串。

str = str.replace(/=+$/, ''); // remove padding equal characters
str = str.replace(/\+/g, '-'); // replace characters according to base64url specifications
str = str.replace(/\//g, '_'); // replace characters according to base64url specifications

有这样做的本机方法吗?它是什么?

标签: javascriptbase64jwtbase64url

解决方案


是的。在 javascript 中有 encodeURIComponent() 和 decodeURIComponent():

https://www.w3schools.com/tags/ref_urlencode.asp

https://www.w3schools.com/jsref/jsref_decodeuricomponent.asp


推荐阅读