博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HTTP-URL中查询字符串格式化
阅读量:3661 次
发布时间:2019-05-21

本文共 4403 字,大约阅读时间需要 14 分钟。

HTTP-URL中查询字符串格式化

GET请求是最常见的请求类型,常用语向服务器查询某些信息。必要时,需要将查询字符串追加到URL末尾。有的时候为了根据URL中查询字符串的不同渲染不同的页面也需要读取URL中的查询字符串。如何避免在URL写入查询字符串时报出格式错误 及 如何更快捷读出URL中查询字符串就是这篇博客要解决的问题。

在这个URL中 ? 后的字符串wd=%C6%E2%C7%E0%F1%C6+csdn&tn=monline_dg即为查询字符串。

相关代码请到查看。

(function(window, document) {
var UrlParas = function(url) {
return UrlParas.fn.init(url); }; UrlParas.VERSION = '1.0.0'; UrlParas.fn = UrlParas.prototype = { url: "", pathname: "", paras: "", init: function(url) {
this.url = url; this.pathname = url.split("?")[0]; this.paras = this.get(); return this; }, //以object类型返回url参数及其取值 get: function(option) {
var paraStr, paras, url = this.url; if (url) { paraStr = url.split("?")[1]; if (paraStr) { paras = {}; paraStr = paraStr.split("&"); for (var n in paraStr) { var name = paraStr[n].split("=")[0]; var value = paraStr[n].split("=")[1]; paras[name] = value; } } else { return {}; } if (!option) { return paras; } else { return paras[option] ? paras[option] : ""; } } }, //重设url参数取值,若无此参数则进行创建,若参数赋值为null则进行删除 set: function(option) {
var i, name, val; if (arguments.length == 2) { name = arguments[0]; val = arguments[1]; option = { name: val }; } if ("string" === typeof option) { this.paras[option] = ""; } else if ("object" === typeof option) { for (i in option) { if (option[i] === null) { delete this.paras[i]; } else { this.paras[i] = option[i]; } } } else { } return this.build(); }, //删除url中指定参数返回新url remove: function(option) {
var i; if ("string" === typeof option) { option = option.split(","); for (i in option) { delete this.paras[option[i]]; } } return this.build(); }, //根据url和处理过的paras重新构件url build: function() {
var i, newUrl = this.pathname + "?"; for (i in this.paras) { newUrl += (i + "=" + this.paras[i] + "&"); } return newUrl.substr(0, newUrl.length - 1); } }; UrlParas.fn.init.prototype = UrlParas.fn; window.urlParas = UrlParas; })(window, document); //使用 testUrl = "https://www.baidu.com/baidu?wd=%C6%E2%C7%E0%F1%C6+csdn&tn=monline_dg"; console.log(urlParas(testUrl).get()); console.log(urlParas(testUrl).get("lang")); console.log(urlParas(testUrl).set("test2","22222")); console.log(urlParas(testUrl).set("111", "bean")); console.log(urlParas(testUrl).set({ "ajax": "ok", "lang": null, "trswq": null })); console.log(urlParas(testUrl).set({ zcsdf: "zcsdf", cesahi: "ceadasdads", lang: "zh-cn" })); console.log(urlParas(testUrl).remove("lang,tt")); console.log(urlParas(testUrl).pathname);

执行结果

这里写图片描述
可以看出,urlParas对测试URL进行了 截取查询字符、增加查询字符串、删除查询字符串等操作。
注意:这里有一个查询参数中如果有中文,则必须编码的问题,解决办法请查看

你可能感兴趣的文章
消息中间件(一)MQ详解及四大MQ比较
查看>>
RabbitMq运行原理浅析
查看>>
七个开源的 Spring Boot 前后端分离项目,一定要收藏!
查看>>
mysql 查询一个月的数据
查看>>
Java字符串的替换(replace()、replaceFirst()和replaceAll())
查看>>
zookeeper是什么
查看>>
Spring使用@AspectJ开发AOP(零配置文件)
查看>>
Java 简单工厂
查看>>
Java建造者模式
查看>>
使用OpenLayers 勾画地图
查看>>
IDEA设置Ctrl+滚轮调整字体大小
查看>>
springboot-openoffice(文件在线预览,超简单)
查看>>
MySQL 第一天(数据库的安装yum安装和源码安装)
查看>>
Python | Windows10下Python的下载、安装与检测
查看>>
笔记(一)
查看>>
笔记(二)
查看>>
笔记(三)
查看>>
笔记(四)
查看>>
正则表达式入门(初级篇)
查看>>
笔记(五)
查看>>