美文网首页
正则表达式处理url参数和cookie

正则表达式处理url参数和cookie

作者: 回调的幸福时光 | 来源:发表于2019-03-22 17:08 被阅读0次

使用的工具网站: regexr.com

我知道通过 String.prototype.split() 也可以实现,但本文只讲解正则表达式的方式。

获取url参数

获取 https://www.google.com/search?q=test&rlz=1C1GCEU_zh-CNHK819HK820&oq=test&aqs=chrome..69i57j69i60l3j0l2.2039j0j1&sourceid=chrome&ie=UTF-8 中的查询参数

分析:我们需要的是先获取所有 key=value 形式的匹配结果,再通过分组,获取keyvalue

res-1.png

正则分析:/([^?&=]+)=([^=&]*)/g

  1. key 的组成里面不允许有?&=
  2. value 的组成里面不允许有&=

获取cookie

获取 "__root_domain_v=.tapd.cn; locale=zh_cn; new_worktable=todo%7C20096111%7Ctodo_all%7Cnormal_list; last_iteration_20096111=1120096111001000251; last_iteration_58410793=1158410793001000361" 中的 cookie

res-2.png

正则分析:/([^=;\s]+)=([^=;]+);?/g

  1. key 的组成里面不允许有=;\s (空格)
  2. value 的组成里面不允许有=;
  3. 结尾的 ; 可有可无

匹配全局,并返回分组的结果

  • 为了获取分组结果,需要使用reg.exec() 方法
  • 为了匹配全局,需要 while 循环
function parse(reg, text) {
  if (!reg || !text) return {}
  const hash = {};
  let res = reg.exec(text);
  while(res !== null) {
    hash[res[1]] = res[2];
    res = reg.exec(text);
  }
  return hash;
}

测试用例:

res-3.png

推荐阅读

可能是最好的正则表达式的教程笔记了吧...
《JavaScript 正则表达式迷你书》

相关文章

  • react(ES6)好用的插件

    Url: 处理浏览器参数 js-cookie: cookie处理 accounting: 对金额进行处理 reac...

  • 正则表达式处理url参数和cookie

    使用的工具网站: regexr.com 我知道通过 String.prototype.split() 也可以实现,...

  • Views#1-基础

    URLconf url()url()正则表达式中的参数既可以是位置参数,也可以是关键字参数# 位置参数,/arti...

  • 获取url参数的方法

    正则表达式获取url 常规使用正则表达式去获取url参数的代码 URLSearchParams方法 使用URLSe...

  • 从URL中获取参数、参数值

    从字符串中解析参数 获取URL的参数 处理url的参数,生成新的url

  • PHP面试题总结

    一.cookie与session的区别 二.php如何防止SQL注入 使用预处理语句和参数化查询。预处理语句和参数...

  • 页面传参

    方法一: URL传参(?后面的参数)(去哪儿网笔试题,把URL后面的参数解析为对象) 方法二: cookie传参 ...

  • 网络基础相关

    1.url参数规则: 参数以问号开始; 参数对是key=value形式; 参数之间使用&链接 2.Cookie的格...

  • 【爬虫】-008-Django-2-MTV实例

    MTV设计模式 Django框架接收了用户请求和参数后,通过正则表达式匹配URL,转发给对应视图views进行处理...

  • url 的正则表达式:path-to-regexp

    该工具库用来处理 url 中地址与参数,能够很方便得到我们想要的数据。js 中有 RegExp 方法做正则表达式校...

网友评论

      本文标题:正则表达式处理url参数和cookie

      本文链接:https://www.haomeiwen.com/subject/bnaqvqtx.html