URLSearchParams

https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams


var paramsString = "q=URLUtils.searchParams&topic=api";
var searchParams = new URLSearchParams(paramsString); //Iterate the search parameters.
for (let p of searchParams) {
console.log(p);
} searchParams.has("topic") === true; // true
searchParams.get("topic") === "api"; // true
searchParams.getAll("topic"); // ["api"]
searchParams.get("foo") === null; // true
searchParams.append("topic", "webdev");
searchParams.toString(); // "q=URLUtils.searchParams&topic=api&topic=webdev"
searchParams.set("topic", "More webdev");
searchParams.toString(); // "q=URLUtils.searchParams&topic=More+webdev"
searchParams.delete("topic");
searchParams.toString(); // "q=URLUtils.searchParams"


"use strict"; /**
*
* @author xgqfrms
* @license MIT
* @copyright xgqfrms
*
* @description SearchParamsGenerator
* @augments
* @example
*
* @param {String} search
* @param {Boolean} debug
*
*/ const SearchParamsGenerator = (search = ``, debug = false) => {
let result = {};
// do something...
let params = new URLSearchParams(search);
for (const param of params) {
let key = ``,
value = ``;
key = param[0];
value = param[1];
result[key] = value;
// console.log(`param =`, param);
// param = ["gilcode", "600570.SH"];
// param = ["skin", "white"];
// param = ["name", "恒生电子"];
// param = ["type", "0"];
parseInt("恒生电子", 10);
// NaN
parseInt("0", 10);
// 0
parseInt("11", 2);
// 3
parseInt("11", 10);
// 11
}
return result;
}; let search = decodeURIComponent(window.location.search);
// "?gilcode=600570.SH&skin=white&name=恒生电子&type=0" SearchParamsGenerator(search);
// {gilcode: "600570.SH", skin: "white", name: "恒生电子", type: "0"}
SearchParamsGenerator(search).gilcode;
// "600570.SH" // view/stock/index.html?code=600570.SH&skin=white&name=恒生电子&type="0" // /view/stock/index.html?code=600570.SH&skin=white&name="恒生电子"&type="0" // decodeURIComponent(window.location.href);
// "f10/view/stock/index.html?code=600570.SH&skin=white&name=恒生电子&type=0" // decodeURI(window.location.href);
// "/f10/view/stock/index.html?code%3D600570.SH%26skin%3Dwhite%26name%3D恒生电子%26type%3D0" let searchParams = new URLSearchParams(search); searchParams.has("code"); // true
searchParams.get("abc"); // null
searchParams.get("code"); // "600570.SH"
searchParams.getAll("code"); // ["600570.SH"] searchParams.append("xyz", "666");
searchParams.toString();
// "code=600570.SH&skin=white&name=%22%E6%81%92%E7%94%9F%E7%94%B5%E5%AD%90%22&type=%220%22&xyz=666"
decodeURIComponent(searchParams.toString());
// "code=600570.SH&skin=white&name="恒生电子"&type="0"&xyz=666"
searchParams.set("code", "600580.SH");
searchParams.get("code");
// "600580.SH"
searchParams.delete("code"); searchParams.entries();
searchParams.keys();
searchParams.values();
searchParams.sort(); for (const param of params) {
let key = ``,
value = ``;
key = param[0];
value = param[1];
console.log(`param =`, param);
} for (const param of params.entries()) {
let key = ``,
value = ``;
key = param[0];
value = param[1];
console.log(`param =`, param);
} for (const param of params.keys()) {
let key = ``,
value = ``;
key = param[0];
value = param[1];
console.log(`param =`, param);
} for (const param of params.values()) {
let key = ``,
value = ``;
key = param[0];
value = param[1];
console.log(`param =`, param);
}

OK


"use strict"; /**
*
* @author xgqfrms
* @license MIT
* @copyright xgqfrms
*
* @description SearchParamsGenerator
* @augments
* @example
*
* @param {String} search
* @param {Boolean} debug
*
*/ const SearchParams = (search = ``, debug = false) => {
const params = new URLSearchParams(search);
let result = {};
for (let param of params) {
let key = ``,
value = ``;
key = param[0];
value = param[1];
result[key] = value;
}
return result;
}; const SearchParamsGenerator = (search = ``, debug = false) => {
const params = new URLSearchParams(search);
let result = {},
entries = [...params.entries()],
keys = [...params.keys()],
values = [...params.values()];
for (let param of params) {
let key = ``,
value = ``;
key = param[0];
value = param[1];
result[key] = value;
}
return {
result,
entries,
keys,
values
};
}; let search = decodeURIComponent(window.location.search);
// "?code=600570.SH&skin=white&name=恒生电子&type=0" SearchParams(search);
SearchParams(search).code;
// "600570.SH" SearchParamsGenerator(search);
SearchParamsGenerator(search).result.code;
// "600570.SH"

ES6 modules



"use strict";

/**
*
* @author xgqfrms
* @license MIT
* @copyright xgqfrms
*
* @description SearchParamsGenerator
* @augments
* @example
*
* @param {String} search
* @param {Boolean} debug
*
*/ const SearchParams = (search = ``, debug = false) => {
const params = new URLSearchParams(search);
let result = {};
for (let param of params) {
let key = ``,
value = ``;
key = param[0];
value = param[1];
result[key] = value;
}
return result;
}; const SearchParamsGenerator = (search = ``, debug = false) => {
const params = new URLSearchParams(search);
let result = {},
entries = [...params.entries()],
keys = [...params.keys()],
values = [...params.values()];
for (let param of params) {
let key = ``,
value = ``;
key = param[0];
value = param[1];
result[key] = value;
}
return {
result,
entries,
keys,
values
};
}; export default SearchParams;
export {
SearchParams,
SearchParamsGenerator
}; /* let search = decodeURIComponent(window.location.search);
// "?code=600570.SH&skin=white&name=恒生电子&type=0" SearchParams(search);
SearchParams(search).code;
// "600570.SH" SearchParamsGenerator(search);
SearchParamsGenerator(search).result.code;
// "600570.SH" */

URL

https://developer.mozilla.org/en-US/docs/Web/API/URL/searchParams

https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/searchParams

refs



xgqfrms 2012-2020

www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!


URLSearchParams & shape URL params的更多相关文章

  1. URLSearchParams & Location & URL params parse

    URLSearchParams & Location & URL params parse URL params parse node.js env bug node.js & ...

  2. URLSearchParams 接口

    URLSearchParams 接口定义了很多个用来处理 URL 参数串的方法 他可以把对象转变成url上面查询信息的写法,例如a=1&b=2 可以把请求路由中的字符串   key=1 ,拼接 ...

  3. "奇葩家园“之 asyncTask 与 url 下载篇

    asyncTask 是android提供的一个轻量级的异步处理的类,有3个泛型参数,params,progress,result params: 启动任务执行的时候传入的参数比如请求的 url 地址 ...

  4. 我对Backbone中url属性的理解

    Model中有一个url属性,而且有一个urlRoot属性. Collection中也有一个url属性. // 这是Model中的url方法 url: function() { var base = ...

  5. android 项目中使用到的网络请求框架以及怎样配置好接口URL

    我们在做项目中一定少不了网络请求,如今非常多公司的网络请求这块好多都是使用一些比較好的开源框架,我项目中使用的是volley,如今讲讲一些volley主要的使用,假设想要具体的了解就要去看它的源代码了 ...

  6. Android开发之使用URL訪问网络资源

    Android开发之使用URL訪问网络资源 URL (UniformResource Locator)对象代表统一资源定位器,它是指向互联网"资源"的指针. 资源能够是简单的文件或 ...

  7. java http url post json

    import java.io.IOException; import java.io.InputStream; import java.io.OutputStreamWriter; import ja ...

  8. JavaScript 功能类 Url.js

    简书原文 这个类的主要目的是为了方便平时编码中的Url类型的数据操作 Github 全局名称 全局名称是由源码的最后一行代码确定的,默认为Url,如存在相同名称的对象会抛出异常: 可以通过 requi ...

  9. 【Python】【BugList13】req = requests.get(url=target)报错: (Caused by SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:777)')

    [代码] # -*- coding:UTF-8 -*- import requests if __name__ == '__main__': target = 'https://unsplash.co ...

随机推荐

  1. ldf和mdf文件怎么还原到sqlserver数据库

    1.把mdf文件和ldf文件拷贝到数据库的默认路径C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA里:2.在sq ...

  2. charles安装使用乱码连手机等问题解决方案

    捣鼓半天终于安装好了,给大家分享下我的过程 1.安装, 正常网上安装即可,我安装了个有汉化包的,,推荐链接 安装方法下载破解版,安装即可 安装包地址:https://pan.baidu.com/s/1 ...

  3. Why should I avoid blocking the Event Loop and the Worker Pool?

    Don't Block the Event Loop (or the Worker Pool) | Node.js https://nodejs.org/en/docs/guides/dont-blo ...

  4. promise有几种状态,什么时候会进入catch

    三个状态:pending.fulfilled.reject两个过程:padding -> fulfilled.padding -> rejected当pending为rejectd时,会进 ...

  5. LOJ10102旅游航道

    题目描述 SGOI 旅游局在 SG-III 星团开设了旅游业务,每天有数以万计的地球人来这里观光,包括联合国秘书长,各国总统和 SGOI 总局局长等.旅游线路四通八达,每天都有众多的载客太空飞船在星团 ...

  6. ubuntu下scala下载+集成IDEA开发环境

    环境须知: ubuntu 16.04 scala 2.11.0 jdk 1.8.0 Idea 2016.3 JDK环境安装 (1)安装jdk, 注意scala很好的支持jdk 1.8 的jvm 编译环 ...

  7. Redis4.0.1的安装及哨兵模式的配置

    https://blog.csdn.net/u014182745/article/details/76294146

  8. 数据中心网络技术新贵:VXLAN与园区网络虚拟化

    摘要:为了应对传统数据中心网络对服务器虚拟化技术的限制,VXLAN技术应运而生. 1 概述 传统数据中心网络面临的问题 虚拟机规模受设备表项规格限制 在传统二层网络中,交换机通过查询MAC地址表来转发 ...

  9. [源码分析] Dynomite 分布式存储引擎 之 DynoJedisClient(1)

    [源码分析] Dynomite 分布式存储引擎 之 DynoJedisClient(1) 目录 [源码分析] Dynomite 分布式存储引擎 之 DynoJedisClient(1) 0x00 摘要 ...

  10. B 等差素数列

    B 等差素数列:2,3,5,7,11,13,....是素数序列.类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列.上边的数列公差为30,长度为6.2004年,格 ...