cookie match 数组问题

倒吊人
  • 35
  function getCookie(name) {
      var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
      console.log(document.cookie);
      if (arr = document.cookie.match(reg)){
        console.log(arr);
        return unescape(arr);
      }
      else
        return null;
    }

clipboard.png
存放匹配结果的数组。不应该只是[qe=123] 为啥会有4项

回复
阅读 1.3k
2 个回答
✓ 已被采纳

其他三项是捕获组,对应的分别是 (^| ),([^;]*), (;|$)") 所匹配的内容,可以把正则设置成全局的 new RegExp("(^| )" + name + "=([^;]*)(;|$)", 'g'),这样就不会包含捕获分组的匹配结果了,只会包含所有的匹配结果

match 方法会返回一个包含匹配结果以及匹配结果中所有捕获组的数组。

宣传栏