強迫症!一行代碼拿到url特定query的值


簡單的說一下背景,看到小伙伴給我發的項目中有一段獲取當前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值;

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM