Query String Object

码农软件 · 软件分类 · 其他jQuery插件 · 2020-01-11 10:14:13

软件介绍

This extension creates a singleton query string object for quick and readable query string modification and creation. This plugin provides a simple way of taking a page's query string and creating a modified version of this with little code.

Example

var url = location.search;
> "?action=view&section=info&id=123&debug&testy[]=true&testy[]=false&testy[]"
var section = $.query.get('section');
> "info"
var id = $.query.get('id');
> 123
var debug = $.query.get('debug');
> true
var arr = $.query.get('testy');
> ["true", "false", true]
var arrayElement = $.query.get('testy[1]');
> "false"
var newUrl = $.query.set("section", 5).set("action", "do").toString();
> "?action=do&section=5&id=123"
var newQuery = "" + $.query.set('type', 'string');
> "?action=view&section=info&id=123&type=string"
var oldQuery = $.query.toString();
> "?action=view&section=info&id=123"
var oldQuery2 = $.query;
> ?action=view&section=info&id=123
var newerQuery = $.query.SET('type', 'string');
> ?action=view&section=info&id=123&type=string
var notOldQuery = $.query.toString();
> "?action=view&section=info&id=123&type=string"
var oldQueryAgain = $.query.REMOVE("type");
> ?action=view&section=info&id=123
var emptyQuery = $.query.empty();
> ""
var stillTheSame = $.query.copy();
> ?action=view&section=info&id=123

Features

  • Chainability

    Like much of jQuery, this object supports chaining set methods to add new key value pairs to the object. In addition, this chain does not modify the original object, but returns a copy which can be modified without changing the original object. You can use the method the 'loud' alternate methods to perform destructive modifications on the original object.

  • Direct Object 'get' Accessor

    The query string object returned contains the keys of the query string through a method named 'get' (e.g. $.query.get(keypath)). Originally, they were also available through $.query[key] as well, but this was removed for version 1.2 since it let methods get removed and that's not fun for anyone.

  • Easy String Creation

    All modern browsers convert JavaScript objects to their string representation through their 'toString' method. So because this object creates a toString method for itself, when evaluated in a string context, this object returns a valid query string. If the query string object has no keys set, it returns an empty string. If it has keys set, it automatically prefixes the output with a question mark so you don't need to worry about appending one yourself. It's there if you need it and gone if you don't. It also supports arrays and associative arrays inside the query string. Both regular and associative arrays use "base[key1]=value1&base[key2]=value2" syntax in the query string. Originally arrays could forgo the square bracket and were simply printed out in their insertion order but with the new deep object support in version 2.0 this had to be removed for the sake of unambiguous keys. (However, I will maintain the 1.2 branch if requested. NB regarding v1.2, the bracketless form of array syntax doesn't create an array unless there is more than one key in the original query string.)

  • Query String Parsing

    The original url parsing code was created by Jörn Zaefferer and modified by me. The new parsing features added are:

    1. Parsing Integers

      The original code parsed floats out of strings but left integers as is. In my release, '123' will be converted to the number 123.

    2. Boolean Values

      Query strings can often contain query parameters with no value set. This implies a simple boolean. (eg index.php?debug implies a query string variable 'debug' set to true)

    3. Improved number parsing

      Parsing features introduced in version 1.2 include better support for number formats and differentiating between number-looking strings and numbers.

    4. Array syntax parsing

      Array shaped query string keys will create an array in the internal jQuery.query structure and using square brackets without an index will generate an array dynamically.

    5. Ampersand or semi-colon delimiters

      Because it has been requested of me, the parser now supports both semi-colons and ampersands as delimiting marks between key value pairs.

    6. Hash parameter parsing

      Because it has been requested of me, the parser now supports both query string parsing and parsing of query string like strings in the url hash.

  • Customization

    There are now some customizations which can be done, mostly dealing with parsing and with toString generation. The options are set by creating jQuery.query as an object of settings before including the jQuery.query source code on your page; when initializing, the query object will check the currently existing jQuery.query for any settings it can use. The settings are:

    1. separator

      The default value for this setting is '&' as that is the standard for parameter division. However, when working in xml, some prefer to use a semi-colon to separate parameters to avoid overuse of &. The parser has been updated to read semi-colons as delimiters but to output generated query strings with a semi-colon you need to set this setting to ';'

    2. space

      The default value for this is true as most people prefer plus signs in query strings to be converted to spaces. It's standard practice to use plus signs to represent spaces in query strings to avoid the dreaded %20 so the parser has been updated and, by default, converts plus signs to spaces. However, this feature can be disabled if you decide you need literal plus signs in your query strings.

    3. suffix

      The default for this is true. If set to true, any arrays, when outputted to a query string will be suffixed with "[]" to show them as an array more clearly. Some may prefer to generate array strings without the square brackets and can set this value to false. I set this to true by default because I prefer one element arrays to be unambiguously arrays when generated in a query string.

    4. hash

      The default for this is false. If set to true, the output of a query string will be prefixed by a hash '#' rather than a question mark. Given the interest in parsing hash parameters along with query string parameters, this seemed like a good setting to introduce.

    5. prefix

      The default for this is true. If set to false, the output of a query string is not prefixed by a hash or question mark.

Limitations

  • Direct Object Access

    Direct object access has been removed from this plugin as it wasn't symmetric (ie it was only usable for getting, not setting) and for safety reasons.

  • Boolean false Values

    Because true values are parsed and represented as attributes without distinct values, false is represented as a lack of attribute. Because of this, attempting to set an attribute to 'false' will result in its removal from the object. This is a design decision which may be made a customizable setting in the future.

  • Key Complexity

    Array and Object syntax in the system is designed for use with shallow objects and arrays. Future work could allow for nested arrays and objects, but that probably won't be done unless there is active interest in such a feature.

    Version 2.0 now supports deep objects just as well as PHP's built in $_GET object.

本文地址:https://codercto.com/soft/d/23133.html

小程序大时代

小程序大时代

即速应用 / 哈尔滨工业大学出版社 / 2018-10 / 58元

2017年1月9日微信小程序的问世,是中国互联网发展史上的又一个里程碑。支付宝、百度、今日头条等各大巨头的陆续进场,无不证明小程序这种轻应用形态已经成为移动互联网的发展趋势。我们希望可以通过这本书,帮助零基础的小程序爱好者,了解小程序的市场走向和生态发展,学会小程序的制作与运营,读懂小程序这个全新物种。 全书分为入门篇、制作篇、运营篇三大篇章。 入门篇首先揭开小程序的神秘面纱,盘点小程......一起来看看 《小程序大时代》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换