1.思路
编解码数组映射 正则替换
2.代码
(1)url解码
function getUrlDecode(href) {
let UrlEncodeArr = ['%23', '%26', '%3D', '%3F', '%3A', '%2F', '%7B', '%7D', '%5B', '%5D', '%3C', '%3E', '%22'];
let UrlDecodeArr = ['#', '&', '=', '?', ':', '/', '{', '}', '[', '<', '>', '\"'];
for (let i=0, len=UrlEncodeArr.length; i < len; i++) {
let reg = new RegExp(UrlEncodeArr[i],"g")
href = href.replace(reg, UrlDecodeArr[i])
}
return href
}
(2)url编码
function getUrlEncode(href) {
let UrlEncodeArr = ['%23', '%26', '%3D', '%3F', '%3A', '%2F', '%7B', '%7D', '%5B', '%5D', '%3C', '%3E', '%22'];
let UrlDecodeArr = ['#', '&', '=', '?', ':', '/', '{', '}', '[', '<', '>', '\"'];
for (let i=0, len=UrlEncodeArr.length; i < len; i++) {
let reg = new RegExp(UrlDecodeArr[i],"g")
href = href.replace(reg, UrlEncodeArr[i])
}
return href
}
(3)获取参数值
const getHrefParameter = (href, parameter) => {
if (href.search(parameter) != -1) {
let par = href.split(parameter + '=')[1]
// par = href.split('&')[0] // 若有多个参数,则再以&切割
return par
} else {
return null
}
}