使用正则表达式和javascript转义特殊字符

时间:2017-09-19 10:10:58

标签: javascript regex cookies

我有这个密码cookie,密码可以包含特殊字符。 (我知道它不安全,但这是用于电子学习目的/解决方法)

var password = document.cookie.replace(/(?:(?:^|.*;\s*)password\s*\=\s*([^;]*).*$)|^.*$/, "$1");

我的问题是它返回这样的特殊字符,例如: !原来是%21

我知道我应该以某种方式使用正则表达式逃避特殊字符,但我似乎无法修复它。

如果密码为: p4sSW0rd !! ,则必须将其返回为: p4sSW0rd !! 当我举例说出alert()时。

1 个答案:

答案 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!!