String.toQueryParams - Prototype JavaScript 框架

Xunxin Prototype API

toQueryParams

toQueryParams([separator = '&']) -> Object

解析一个 URI 查询字符串,并返回由“参数/值”对组成的对象。

这个方法真正的目的是解析查询字符串(因此参数 separator 的默认值为 "&")。

基于上述原因,它 并不 考虑问号(问号表示一个查询字符串的开始)之前的部分以及 "#" 号之后的部分,并且会在每一个“参数/值”对上调用 decodeURIComponent() 方法。
译注:在 URL 中,"#" 号一般用来表示锚点,置于最后,如 http://xxx/News/Content.aspx?id=100#first ,在 JavaScript 中,可以通过方法 location.hash 获取 URL 中 "#" 号之后的部分。

另外,如果在查询字符串中,同一个参数包括不同的值,String#toQueryParams 会将那些值合并为一个数组,作为那个查询参数的值。

注意,如果参数没有指定值,该参数的值将会被设置为 undefined

样例

'section=blog&id;=45'.toQueryParams(); 
// -> {section: 'blog', id: '45'} 

'section=blog;id=45'.toQueryParams(); 
// -> {section: 'blog', id: '45'} 

'http://www.example.com?section=blog&id;=45#comments'.toQueryParams();
// -> {section: 'blog', id: '45'} 

'section=blog&tag;=javascript&tag;=prototype&tag;=doc'.toQueryParams();
// -> {section: 'blog', tag: ['javascript', 'prototype', 'doc']} 

'tag=ruby%20on%20rails'.toQueryParams();
// -> {tag: 'ruby on rails'} 

'id=45&raw;'.toQueryParams(); 
// -> {id: '45', raw: undefined}