js中常使用URLSearchParams来解析url,只要把url作为URLSearchParams的参数传入,就能获取解析后的URLSearchParams对象,通过get()来获取指定的url参数.但是获取url中第一个参数的时候会出现获取值为null的情况.
直接上代码
const url = new URL('http://example.com?timeperiod=lasttwentyeightdays&pagesize=20'); const args = new URLSearchParams(url.search);多加一步转换即可.
URLSearchParams 构造函数不会解析完整 URL,但是如果字符串起始位置有 ? 的话会被去除。 var paramsString1 = “http://example.com/search?query=@”; var searchParams1 = new URLSearchParams(paramsString1);
searchParams1.has(“query”); // false searchParams1.has(“http://example.com/search?query”); // true
searchParams1.get(“query”); // null searchParams1.get(“http://example.com/search?query”); // “@” (equivalent to >decodeURIComponent(’@’))
var paramsString2 = “?query=value”; var searchParams2 = new URLSearchParams(paramsString2); searchParams2.has(“query”); // true
var url = new URL(“http://example.com/search?query=@”); var searchParams3 = new URLSearchParams(url.search); searchParams3.has(“query”) // true
参考: URLSearchParams returning null for the first query string URLSearchParams