匹配url占位符字段

/**
 * 正则Group匹配
 * 匹配url中 :id 等占位符字段
 */
function getMatches (string) {
  let matches = []
  let regex = /(:[a-z_]+)/
  let match = regex.exec(string)
  while (match !== null) {
    matches.push(match[1])
    string = string.replace(match[1], '')
    match = regex.exec(string)
  }
  return matches
}


console.log(getMatches("http://test.com/users/:id"))

// 输出结果
// :id
/**
 * 从URL匹配出参数pathParams
 * @param {string} url
 * @param {object} params
 * @returns {string}
 * @private
 */
_wrapUrl (url, params) {
  if (params !== null) {
    let matches = this._getMatches(url)
    for (let match of matches) {
      let value = params[match.replace(':', '')]
      if (value !== null) {
        url = url.replace(match, value)
      }
    }
  }
  return this.path + url
},

转载于:https://www.cnblogs.com/hongjh/p/7849835.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值