如何在 Node.js 中检查字符串是明文还是 base64 格式
How to check if a string is plaintext or base64 format in Node.js
我想检查我函数的给定字符串是纯文本还是 base64 格式。我能够将纯文本编码为 base64 格式并将其反转。
但是我想不出任何方法来验证字符串是否已经是 base64 格式。谁能建议在节点 js 中执行此操作的正确方法?是否有任何 API 可以在节点 js 中执行此操作。
编码是字节级的。
如果您正在处理字符串,那么您所能做的就是猜测或保留元数据信息与您的字符串以识别
但您可以查看这些库:
有效的 base64 字符串是所有纯文本字符串的子集。假设我们有一个字符串,问题是它是否属于那个子集。一种方法是 Basit Anwer 建议的方法。不过,这些库需要安装 libicu
。一种更便携的方法是使用内置的 Buffer
:
Buffer.from(str, 'base64')
不幸的是,这个解码函数不会抱怨非Base64字符。它只会忽略非 base64 字符。所以,单靠它是无济于事的。但是您可以尝试将其编码回 base64 并将结果与原始字符串进行比较:
Buffer.from(str, 'base64').toString('base64') === str
此检查将判断 str
是否是纯 base64。
我想检查我函数的给定字符串是纯文本还是 base64 格式。我能够将纯文本编码为 base64 格式并将其反转。 但是我想不出任何方法来验证字符串是否已经是 base64 格式。谁能建议在节点 js 中执行此操作的正确方法?是否有任何 API 可以在节点 js 中执行此操作。
编码是字节级的。 如果您正在处理字符串,那么您所能做的就是猜测或保留元数据信息与您的字符串以识别
但您可以查看这些库:
有效的 base64 字符串是所有纯文本字符串的子集。假设我们有一个字符串,问题是它是否属于那个子集。一种方法是 Basit Anwer 建议的方法。不过,这些库需要安装 libicu
。一种更便携的方法是使用内置的 Buffer
:
Buffer.from(str, 'base64')
不幸的是,这个解码函数不会抱怨非Base64字符。它只会忽略非 base64 字符。所以,单靠它是无济于事的。但是您可以尝试将其编码回 base64 并将结果与原始字符串进行比较:
Buffer.from(str, 'base64').toString('base64') === str
此检查将判断 str
是否是纯 base64。