给定下面的字符串,我如何根据某些单词拆分它并用“&”连接它?
search?commute[]=under2salary[]=under75role[]=sales
正确的格式应该是:
search?commute[]=under2&salary[]=under75&role[]=sales
基本上,我只想在每个新词之前添加一个“&”,在这种情况下是“角色”和“薪水”。 “Commute”前面不应有“&”,因为它是字符串中的第一个单词。
答案 0 :(得分:0)
嗨,你可以试试这个代码,它根据某些单词拆分数组并用'&'连接
let str = 'search?commute[]=under2salary[]=under75role[]=sales';
let splitArr = ['salary', 'role'];
splitArr.forEach(item => {
str = str.split(item).join('&' + item);
});
console.log(str);
答案 1 :(得分:0)
假设您确实无法修复有问题的查询字符串的来源,我认为您可以将 =\word\number\word
替换为 =\word\number&\word
。
考虑以下代码:
function fixUrl(url) {
return url.replace(/(=\w+\d+)(\w+)/g, (_, group1, group2) => `${group1}&${group2}`);
}
const url = `search?commute[]=under2salary[]=under75role[]=sales`;
const fixedUrl = fixUrl(url);
console.log(fixedUrl);