js如何判断字符串是否进行过window.btoa()转码
window.btoa()是基于Base64算法的。window.btoa()只能将ASCII字符进行转码
因此我们需要了解Base64的原理及主要特征:Base64的原理在这里就不多说了,网上很多讲解都很详细。
这里我们简单总结下Base64的主要特征:
1 Base64由64个字符组成A-Z a-z 0-9 + / =
2 字符串的长度一定是4的倍数
3 = 一定出现在末尾,等号的个数为0-2
有了这些特性我们应该想到用正则表达式来进行判断
var base64regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;
var paramsString = "?name=XX"; if(base64regex.test(paramsString)){
alert("YES");
}else{
alert("NO");
}
需要指出的是这种方式并不一定都正确,如果测试字符串正好符合Base64特征就不能正确检测了。