怎么截取指定的字符串

如何截取kind中的值就是ASN.FORM.345,但每次kind的值又不确定,而且出现的位置不确定,它的长度不确定,感觉没办法解决啊。确定的是每个字段都以&分割,可不可以以&把它转成对象....老哥们有思路解决吗
'id=TGT2573&type=view&kind=ASN.FORM.345'

阅读 1.9k
3 个回答
function parseParams(str) {
  const result = {}
  str.split('&').forEach(item => {
    result[item.split('=')[0]] = item.split('=')[1]
  })
  return result
}

const params = parseParams('id=TGT2573&type=view&kind=ASN.FORM.345')
const kind = params.kind

image.png

其实你这个最常见的场景就是URL的search参数取值而已

  function urlToObj(params) {
    let data = params
    let result = {}
    data.split('&').forEach(function (item, index) {
      let arr = item.split('=')
      result[arr[0]] = arr[1] || ''
    })
    return result
  }

  const obj = urlToObj('id=TGT2573&type=view&kind=ASN.FORM.345')
  const kind = obj.kind || obj['kind']
  console.log(kind)
function getUrlParam(name, string) {
    //构造一个含有目标参数的正则表达式对象
    const reg = new RegExp("(^|&)" + name.toLowerCase() + "=([^&]*)(&|$)");
    //匹配目标参数
    const r = string.match(reg);
    if (r != null) {
        //返回参数值
        return unescape(r[2]);
    }
    return null;
}

const str = 'id=TGT2573&type=view&kind=ASN.FORM.345'
const kind = getUrlParam('kind', str)

// console.log(kind) => ASN.FORM.345
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题