kit-qs
Version:
query-string
54 lines (40 loc) • 1.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _copy = require('./copy');
var _copy2 = _interopRequireDefault(_copy);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var searchReg = /([^&=?#]+)=([^&#]+)/g;
var urlReg = /\/+.*\?/;
var arrayReg = /(.+)\[\]$/;
function parse(url, key) {
if (!url) return;
var params = {};
var match = void 0;
var name = void 0;
var value = void 0;
var isArray = void 0;
url = url.indexOf('?') === -1 ? '?' + url : url;
url = url.replace(/\?/g, '&').replace('&', '?');
while (match = searchReg.exec(url)) {
name = match[1];
value = match[2];
isArray = name.match(arrayReg);
if (urlReg.test(value)) {
params[name] = url.substr(url.indexOf(value));
break;
}
if (isArray) {
name = isArray[1];
params[name] = params[name] || [];
params[name].push(value);
} else {
params[name] = value;
}
}
return key ? (0, _copy2.default)(params[key]) : (0, _copy2.default)(params);
}
console.log(parse('id=xx&c=xx'));
exports.default = parse;
module.exports = exports['default'];