我正在尝试对Base64编码的256位数字进行这种验证,而无需=填充,从而在客户端和服务器上进行正则表达式。

^[A-Za-z0-9+/]{42}[AEIMQUYcgkosw048]$


这是我的代码,无法正常运行,因为任何值似乎都返回true:

$.fn.validateKey = function() {
    var re = /^[A-Za-z0-9+/]{42}[AEIMQUYcgkosw048]$/
    var re = new RegExp($(this).val());
    return re;
};


如何在不使用JavaScript填充的情况下验证Base 64编码的256位签名密钥?

最佳答案

您正在返回RegExp对象。您想使用输入字符串返回其评估。

$.fn.validateKey = function() {
    var re = /^[A-Za-z0-9+/]{42}[AEIMQUYcgkosw048]$/;
    return re.test($(this).val());
};


注释中的Jan指出了一些有趣的东西,其中/不需要在正则表达式中转义(至少在我的浏览器中)。

我相信这是因为它是角色类的一部分。

07-24 16:23