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特征就不能正确检测了。

原文地址:https://www.cnblogs.com/xiao-lei/p/6071415.html