URLSearchParams & shape URL params
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的更多相关文章
- URLSearchParams & Location & URL params parse
URLSearchParams & Location & URL params parse URL params parse node.js env bug node.js & ...
- URLSearchParams 接口
URLSearchParams 接口定义了很多个用来处理 URL 参数串的方法 他可以把对象转变成url上面查询信息的写法,例如a=1&b=2 可以把请求路由中的字符串 key=1 ,拼接 ...
- "奇葩家园“之 asyncTask 与 url 下载篇
asyncTask 是android提供的一个轻量级的异步处理的类,有3个泛型参数,params,progress,result params: 启动任务执行的时候传入的参数比如请求的 url 地址 ...
- 我对Backbone中url属性的理解
Model中有一个url属性,而且有一个urlRoot属性. Collection中也有一个url属性. // 这是Model中的url方法 url: function() { var base = ...
- android 项目中使用到的网络请求框架以及怎样配置好接口URL
我们在做项目中一定少不了网络请求,如今非常多公司的网络请求这块好多都是使用一些比較好的开源框架,我项目中使用的是volley,如今讲讲一些volley主要的使用,假设想要具体的了解就要去看它的源代码了 ...
- Android开发之使用URL訪问网络资源
Android开发之使用URL訪问网络资源 URL (UniformResource Locator)对象代表统一资源定位器,它是指向互联网"资源"的指针. 资源能够是简单的文件或 ...
- java http url post json
import java.io.IOException; import java.io.InputStream; import java.io.OutputStreamWriter; import ja ...
- JavaScript 功能类 Url.js
简书原文 这个类的主要目的是为了方便平时编码中的Url类型的数据操作 Github 全局名称 全局名称是由源码的最后一行代码确定的,默认为Url,如存在相同名称的对象会抛出异常: 可以通过 requi ...
- 【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 ...
随机推荐
- JAVAV EMAIL
package a; import java.util.Date;import java.util.Properties;import javax.mail.Authenticator;import ...
- Pulsar Pub/Sub Messaging
The Apache Software Foundation Announces Apache Pulsar as a Top-Level Project : The Apache Software ...
- odoo-nginx 配置之80端口
1 upstream odoo { 2 server 127.0.0.1:8069 weight=1 fail_timeout=0; 3 } 4 5 upstream odoo-im { 6 serv ...
- LOJ10065 北极通讯站
Waterloo University 2002 北极的某区域共有 n 座村庄,每座村庄的坐标用一对整数 (x,,y) 表示.为了加强联系,决定在村庄之间建立通讯网络.通讯工具可以是无线电收发机,也可 ...
- Python3 如何查看内置函数都有哪些?
数据科学交流群,群号:189158789,欢迎各位对数据科学感兴趣的小伙伴的加入! 上代码: 1 import builtins 2 num = len(dir(builtins)) 3 print( ...
- Docker监控平台prometheus和grafana,监控redis,mysql,docker,服务器信息
Docker监控平台prometheus和grafana,监控redis,mysql,docker,服务器信息 一.通过redis_exporter监控redis 1.1 下载镜像 1.2 运行服务 ...
- Session.invalidate与sessiont.removeAtribute()学习比较
当浏览器第一次请求时,服务器创建一个session对象,同时生成一个sessionId,并在此次响应中将sessionId 以响应报文的方式传回客户端浏览器内存或以重写url方式送回客户端,来保持整个 ...
- vscode开发vue,热更新
1.首先用vscode去安装热更新插件 2.vscode安装后默认修改的文件是没有开启自动保存的,需要将自动保存勾选 这样就不用每次修改都去open with live server:
- 《C++ Primer Plus》啃书计 第1~4章
<C++ Primer Plus>啃书计 第1~4章 第一章 预备知识 1.1-1.3略过 1.4 程序创建的技巧 1. cfront,它将C++源代码翻译成C源代码,然后再使用标准C编译 ...
- Linux下diff的操作详解
总述 Linux diff命令用于比较文件的差异.diff以逐行的方式,比较文本文件的异同处.特别是比较两个版本不同的文件,如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子 ...