获取字符串中指定参数方式

一、URLSearchParams方式

const _URL = 'abc?x=1&y=2&z=3' const params = new URLSearchParams(_URL) // params.get('y')

优点:代码简洁,获取方便;
缺点:兼容性差,iOS 10.3+和Android 5+

二、&符分割方式

function _getUrlParam(url) { var q = {}; var _idx = url.indexOf('?') if (_idx != -1) { url = url.substr(_idx + 1) } var _params = url.replace(/#.*/g, '').split('&') for (var i = 0; i < _params.length; i++) { var pair = _params[i].split('=') if (!pair[0]) { continue } q[pair[0]] = pair[1] } return q } const _URL = 'abc?x=1&y=2&z=3' const params = _getUrlParam(_URL); // params.y

优点:获取方便;
缺点:代码较多,耗时多

三、正则匹配

const _URL = 'abc?x=1&y=2&z=3' function _regURLParam(url, key) { // 分组方式 '(^|\\?|&)' + key + '=(.*?)[&$]' // 非分组方式 '(?<=(?:\\?|\\&|^)' + key + '=).*?(?=[&$])' var _reg = new RegExp('(?<=(?:\\?|\\&|^)' + key + '=).*?(?=[&$])') return url.match(_reg)[0] } const _y = _regURLParam(_URL, 'y')

优点:耗时少;
缺点:获取不灵活



控制台察看耗时对比