如何查找以字符串"word"并从带有char #的字符串中提取信息
How to find cookies which begin with string "word" and extract information from string with char #
我的cookie中有值,在值之间放#,以便以后可以从cookie中提取数据。
现在我需要一种方法来搜索以某个单词开头的cookie,比如"word",当我找到这些cookie时,我想从中提取单词,正如我说的,char #是它的指示器,char %是最后一个字符的指示器。
var name = "word" + "" + n1 + "" + n2 + "" + n3;
var value = v1 + "#" + v2 + "#" + v3 + "#" + v4 + "%";
name为cookie名称,value为cookie值。
我需要一个函数,它将寻找所有以"word"开头的cookie,当找到它时,从cookie值提取v1 v2 v3和v4在4个不同的变量。
我必须查看所有cookie名称如果cookie名称以"word"开头,如
"word and this is the rest of the string"。
这是第一部分。
第二部分是当我们找到具有该名称的cookie时,现在从以#分隔的字符串cookie值中我们需要分离4个变量。
现在清楚我需要什么了吗?
两个辅助函数。
将document.cookie
字符串解码为具有键/值的对象:
function decodeCookie() {
var cookieParts = document.cookie.split(";"),
cookies = {};
for (var i = 0; i < cookieParts.length; i++) {
var name_value = cookieParts[i],
equals_pos = name_value.indexOf("="),
name = unescape( name_value.slice(0, equals_pos) ).trim(),
value = unescape( name_value.slice(equals_pos + 1) );
cookies[":" + name] = value;
}
return cookies;
}
搜索该对象并找到以某个搜索词开头的第一个值的方法:
function findCookieByName(searchWord) {
var cookies = decodeCookie();
for (name in cookies) {
var value = cookies[name];
if (name.indexOf(":" + searchWord) == 0) {
return value;
}
}
}
所以你可以这样做:
var value = findCookieByName("word");
if (value) {
var pieces = value.split("#"); // > array of values
}
注:我在cookie名称前加上":"
,以防止与对象的内置属性冲突。例如:你可以将你的cookie命名为__proto__
,但这对JavaScript对象来说就不太管用了。因此,我使用前缀存储所有cookie名称。
相关文章:
- 内联javascript与"<脚本>"字符串错误地关闭了脚本标记
- 用分隔符分隔具有多个整数值的字符串的Javascript"重试错误的值
- 如何删除“"使用javascript从字符串中提取字符
- 解析字符串包含'"'从mysql检索到JSON
- 为什么我得到“;错误:预期"同时访问字符串
- 传递带有符号“”的字符串变量'"到函数
- 添加前缀“#"到数组中的某些字符串值
- 索引a“/"在字符串中
- 看到意想不到的"未定义的“;在Node JS提供的字符串中
- 用“”查找字符串//"并从“//"直到最后
- 替换正斜杠“/"JavaScript字符串中的字符
- 检查字符串是否只包含“0”-"什么都没有
- 带有换行符的JSP+HTML-将其作为字符串获取,并删除"新线”;
- Regex提取字符串后的第二个“"字符串末尾的点字符
- javascript exclude"00”;以及“;01〃;字符串
- jquery ui的客户端缓存自动完成:javascript/jquery regex匹配字符串"索引“;对象
- IE下降"%"在附加html字符串时从维度
- 错误:未捕获的异常:[exception.."字符串包含一个..quot;
- jQuery:将字符串转换为"手柄;类似于Shopify's Handleize
- Regex检测到大于“>"并且小于“0”<"在字符串中