如果只需要值可以写成这样:
function getValueArray(url_){
return url_.match(/(?<=[\?&]\w+=)[^&]+(?=(&|$))/g));
}
需要注意:小括号里可以写$这样的标识符,而中括号里的值只有字符。
如果需要包含key和value并且以object形式返回则写成这样:
function getKeyValueObject(url_){
return [{}].concat(url_.match(/(?<=[\?&=])[^&=]+(?=(=|&|$))/g)).
reduce((o, v, i, arr) => (i % 2 && (o[v] = arr[i + 1]), o));
}
需要注意:表达式里小括号可以返回最后一个逗号后的表达式值。所以可以写成一行。
如果只需要通过key来获得对应的值可以写成这样:
function getValue(url_,key_){
return url_.match(new RegExp(`(?<=[\\?&]${key_}=)[^&]+(?=(&|$))`))[0];
}
需要注意:用模板字符串时,要转义问号,需要用两个\\符号。