UNPKG

kit-qs

Version:
54 lines (40 loc) 1.18 kB
'use strict'; 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'];