UNPKG

jbzwebsdk

Version:

Shanghai jinbaozheng easy network technology Co.,Ltd sdk

93 lines (86 loc) 2.62 kB
/** * Created by cuppi on 2016/12/14. */ // import UrlRefex from 'url-regex'; // import UrlPattern from 'url-pattern'; /** * 网络地址工具类 * @memberOf module:tool */ class UrlTool { /** * 合成URL完整地址 * @param {string} baseUrl 基础地址 * @param {string} subUrl 相对地址 * @param {string} parameters 参数 * @returns {string} 返回拼接后的地址 */ static urlFromPortion(baseUrl, subUrl, parameters) { if (!parameters) { parameters = {}; } let paras = []; for (let key in parameters) { if (!parameters.hasOwnProperty(key)) { continue; } if (parameters[key] !== undefined) { paras.push(key + '=' + parameters[key]); } } let iUrl = baseUrl + subUrl; if (paras.length > 0) { iUrl = iUrl + '?' + paras.join('&'); } return iUrl; } /** ********* 待完善接口 ************ **/ /** * * @param name * @returns {*} */ // static getUrlQuery(name) { // let reg = new RegExp(`(^|&)${name}=([^&]*)(&|$)`); // let result = window.location.search.substr(1).match(reg); // let inType = result ? decodeURIComponent(result[2]) : null; // return inType; // } // static getNowUrl() { // let nowUrl = window.location.href; // nowUrl = nowUrl.substring(0, nowUrl.indexOf('#/')); // return nowUrl // } /** * 分析Url并解析为对象结构 * @param url 待分析Url * @param options 分析Url配置 * @return Promise<object> 参数为解析后的结果,url无效时返回Null */ // static portionFromUrl(url, options?){ // return new Promise((resolve, reject) => { // try { // let isUrl = UrlRefex().test(url); // if (isUrl){ // let portionData = (new UrlPattern(/^(http(s):\/\/)([\w.-]*)(:([0-9]*))?((\/[\w.-]*)+)?(\?([\w-=&]*))?#?\/?((([\w-]*(\/)?)+)?(\?(.*))?)?/, // ['protocol', '', 'host', '', 'port', 'path', '', '', 'query', 'hash', 'hashpath', '', '', '', 'hashquery'])).match(url); // // if (options && options.complete){ // console.log(portionData.host) // let hrefPortion = (new UrlPattern(``, { // segmentValueCharset: 'a-zA-Z0-9-_~ %/' // })).match(portionData.host) // portionData = {...portionData, ...hrefPortion}; // } // resolve(portionData) // } else { // resolve(null) // } // } catch (e) { // console.log(e); // reject(new Error('解析失败')); // } // }) // } } export default UrlTool;