如何截取kind中的值就是ASN.FORM.345,但每次kind的值又不确定,而且出现的位置不确定,它的长度不确定,感觉没办法解决啊。确定的是每个字段都以&分割,可不可以以&把它转成对象….老哥们有思路解决吗
‘id=TGT2573&type=view&kind=ASN.FORM.345’
回答
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
其实你这个最常见的场景就是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