场景:给URL拼接参数,假设URL声明:http://www.xx.com?a={a}&b={b}&c={c},取用户填写的值set到变量中
页面表单:
a: 我是A输入的值
b: 我是B
c: 我是C
求出:http://www.xx.com?a=我是A输入的值&b=我是B&c=我是C
思路:
获取表单数据:
const formData = [{ name: 'a', dateForm: 'valueA'},{ name: 'b', dateForm: 'valueB'}]
取出name的值做为新数组的key,dateForm作为value,如: { {a}:'valueA', {b}:'valueB',...},再与url匹配替换。
代码:
let objList = {}
for (let item in formData){
objList[`{ ${formData[item].name} }`] = formData[item].dateForm || '' // 没有dateForm值时置空或用其他值替代,避免传undefined
}
let url = http://www.xx,com?a={a}&b={b}&c={d}
url = url.replace(/(\{[\w\u4e00-\u9fa5]+\})/ig,function($1) {
return objList[$1]
})
console.log(url) // http://www.xx,com?http://www.xx,com?a=我是A输入的值&b=我是B
有更好的方法欢迎留言讨论