为了账号安全,请及时绑定邮箱和手机立即绑定

按名字获得曲奇

按名字获得曲奇

尚方宝剑之说 2019-06-28 16:30:30
按名字获得曲奇我要从饼干中得到价值。现在我有两个名字的饼干shares=名字obligations= .我只想让这个getter得到义务cookie中的值。我该怎么做?所以for将数据分割成单独的值,并将其放入数组中。 function getCookie1() {     // What do I have to add here to look only in the "obligations=" cookie?      // Because now it searches all the cookies.     var elements = document.cookie.split('=');     var obligations= elements[1].split('%');     for (var i = 0; i < obligations.length - 1; i++) {         var tmp = obligations[i].split('$');         addProduct1(tmp[0], tmp[1], tmp[2], tmp[3]);     }  }
查看完整描述

3 回答

?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

避免迭代数组的一种方法是:

function getCookie(name) {
  var value = "; " + document.cookie;
  var parts = value.split("; " + name + "=");
  if (parts.length == 2) return parts.pop().split(";").shift();}

漫游

如果字符串中不存在令牌,或者在字符串中找到令牌时,按令牌拆分字符串将产生一个具有一个字符串(相同值)的数组。

第一个(左)元素是令牌之前的字符串,第二个(右)是令牌后面的字符串。

(注意:如果字符串以令牌开头,则第一个元素是空字符串)

考虑到cookie的存储方式如下:

"{name}={value}; {name}={value}; ..."

为了检索特定的cookie值,我们只需要获得“;{name}=”和Next“;”之后的字符串。在进行任何处理之前,我们在cookie字符串前面加上“;”,以便每个cookie名称(包括第一个名称)都以“;”和“=”括起来:

"; {name}={value}; {name}={value}; ..."

现在,我们可以首先按“;{name}=”拆分,如果在cookie字符串中找到令牌(即,我们有两个元素),我们将以第二个元素作为以Cookie值开头的字符串结束。然后,我们从数组(即POP)中提取出这个值,并重复相同的过程,但现在使用“;”作为标记,但这次提取左字符串(即Shift)以获得实际的令牌值。


查看完整回答
反对 回复 2019-06-28
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

我更喜欢在cookie上使用一个正则表达式匹配:

window.getCookie = function(name) {
  var match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));
  if (match) return match[2];}

或者我们也可以使用作为一个函数,检查下面的代码。

function check_cookie_name(name) 
    {
      var match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));
      if (match) {
        console.log(match[2]);
      }
      else{
           console.log('--something went wrong---');
      }
   }
查看完整回答
反对 回复 2019-06-28
?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

使用cookie获取脚本:

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;}

那就称之为:

var value = readCookie('obligations');


查看完整回答
反对 回复 2019-06-28
  • 3 回答
  • 0 关注
  • 396 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信