如果我有一个随机字符串并希望将其编码为另一个只包含字母数字字符的字符串,那么在JavaScript / NodeJS中最有效的方法是什么?
显然,必要时可以将输出字符串转换回原始输入字符串。
谢谢!
答案 0 :(得分:4)
要编码为字母数字字符串,您应使用字母数字编码。一些流行的包括十六进制(base16),base32,base 36,base58和base62。使用十六进制的替代方法,因为较大的字母表导致较短的编码字符串。这里有一些信息:
在NodeJS中,十六进制编码为natively supported,可以按如下方式完成:
// Encode
var hex = new Buffer(string).toString('hex');
// Decode
var string = new Buffer(hex, 'hex').toString();
重要的是要注意其中一些的不同实现。例如,Flickr和比特币使用Base58的不同实现。
答案 1 :(得分:-3)
为什么不将2个字符串存储在不同的变量中,所以不需要转换回来?
要提取所有字母数字,您可以使用正则表达式函数,如下所示:
var str='dssldjf348902.-/dsfkjl';
var patt=/[^\w\d]*/g;
var str2 = str.replace(patt,'');
str2
变为dssldjf348902dsfkjl