基于多个单词拆分字符串

时间:2021-06-23 15:53:18

标签: javascript

给定下面的字符串,我如何根据某些单词拆分它并用“&”连接它?

search?commute[]=under2salary[]=under75role[]=sales

正确的格式应该是:

search?commute[]=under2&salary[]=under75&role[]=sales

基本上,我只想在每个新词之前添加一个“&”,在这种情况下是“角色”和“薪水”。 “Commute”前面不应有“&”,因为它是字符串中的第一个单词。

2 个答案:

答案 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);