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}