js实现decodeString
实现 decodeString 的方法
JavaScript 中实现 decodeString 通常用于解码经过编码的字符串,例如 Base64 编码或 URL 编码。以下是几种常见的解码方法:
Base64 解码
使用 atob() 函数解码 Base64 编码的字符串:
const encodedStr = 'SGVsbG8gV29ybGQ='; // Base64 编码的 "Hello World"
const decodedStr = atob(encodedStr);
console.log(decodedStr); // 输出: "Hello World"
URL 解码
使用 decodeURIComponent() 解码 URL 编码的字符串:
const encodedUrl = 'Hello%20World%21'; // URL 编码的 "Hello World!"
const decodedUrl = decodeURIComponent(encodedUrl);
console.log(decodedUrl); // 输出: "Hello World!"
HTML 实体解码
使用 DOMParser 解码 HTML 实体:
const encodedHtml = '<div>Hello World!</div>';
const parser = new DOMParser();
const decodedHtml = parser.parseFromString(encodedHtml, 'text/html').body.textContent;
console.log(decodedHtml); // 输出: "<div>Hello World!</div>"
自定义解码函数
如果需要自定义解码逻辑,可以手动实现:

function decodeString(str) {
return str.replace(/&#(\d+);/g, (match, dec) => String.fromCharCode(dec));
}
const encodedCustom = 'Hello World!';
const decodedCustom = decodeString(encodedCustom);
console.log(decodedCustom); // 输出: "Hello World!"
注意事项
atob()仅适用于 Base64 编码的字符串,传入非法字符会抛出错误。decodeURIComponent()对完整的 URL 编码字符串有效,单独编码的字符可能需要多次调用。- HTML 实体解码需确保输入字符串是安全的,避免 XSS 攻击。






