简单的说一下背景,看到小伙伴给我发的项目中有一段获取当前url特定query值的代码,本着能写1行代码就不写5行代码的原则,我把这个获取方法给改了一下

之前的代码如下:


const queryArr = location.search.substring(1).split('&')
let name = ''
queryArr.forEach(item => {
const _arr = item.split('=') if (_arr[0] === 'name') {
name = _arr[1]
}
})

花了这么大工夫就为了拿到query中name字段的值,其实有更简单的方法,一行代码就可以搞定


巧用正则match

我们来看一下一行代码怎么拿到的


const name = location.search.match(/name=([^&]*)/)[1]

这里介绍一次match方法,match方法返回一个数组,数组中索引0为正则表达式匹配到的全部字符;

比如这里的字符串如果为?name=xiaoming&id=123索引0就为'name=xiaoming'

0以后的索引为正则表达式匹配的组,即为()内的内容,上面只有一个组就是([^&]*),所以直接拿到就是'小明',所以上面的代码直接拿索引1就是对应的name值;

最后下班,又是充实的一天~~~

最新文章

  1. Thread 学习记录 <1> -- volatile和synchronized
  2. Android之ADB指令
  3. 关于Servlet中的HttpServletRequest和HttpServletResponse
  4. IDEA操作GIT说明
  5. 手势解锁自定义View
  6. 网站安全通用防护代码(C#版本源码提供)
  7. Linux动态查看网络流量iptraf
  8. Morgan stanley 电话面试
  9. javascript关于原型的深刻理解
  10. Window10安装TestLink,以及登录mysql数据库的错误处理
  11. 认识node.js:express(一)
  12. Chapter 2 Open Book——3
  13. CSS3实现一束光划过图片、和文字特效
  14. Hibernate (一)
  15. Python两大佬互相撕逼 技术何苦为难技术?
  16. tcpdf 将网页生成pdf
  17. linux连接数过多,导致ping包丢包的问题解析
  18. C#格式化字符串大全
  19. c# 正则
  20. 剑指Offer 15. 反转链表 (链表)

热门文章

  1. 小实例 hangman game
  2. python学习笔记--深拷贝与浅拷贝的区别
  3. Tkinter图形界面设计(GUI)
  4. 2017沈阳网络赛hdu6199 gems gems gems
  5. CTF中编码与加解密总结
  6. Flume安装部署
  7. [bzoj4154][Ipsc2015]Generating Synergy_KD-Tree_dfs序
  8. C#实现所有经典排序算法汇总
  9. 树剖LCA讲解
  10. MYSQL 运维