我有这个密码cookie,密码可以包含特殊字符。 (我知道它不安全,但这是用于电子学习目的/解决方法)
var password = document.cookie.replace(/(?:(?:^|.*;\s*)password\s*\=\s*([^;]*).*$)|^.*$/, "$1");
我的问题是它返回这样的特殊字符,例如: !原来是%21
我知道我应该以某种方式使用正则表达式逃避特殊字符,但我似乎无法修复它。
如果密码为: p4sSW0rd !! ,则必须将其返回为: p4sSW0rd !! 当我举例说出alert()时。
答案 0 :(得分:0)
%21
是!
的{{3}}。您所要做的就是将值重新解码。
function getCookieKeyValue(keyName) {
return document.cookie.replace(new RegExp(`(?:(?:^|.*;\\s*)${keyName}\\s*\=\\s*([^;]*).*$)|^.*$`), "$1");
}
// As per your scenario ...
getCookieKeyValue('password'); // p4sSW0rd%21%21
decodeURIComponent(getCookieKeyValue('password')); // p4sSW0rd!!