Skip to content
Advertisement

node – How to replace part of an url

I have an array of urls like this:

[
 'https://subdomain1.example.com/foo-bar/', 
 'https://subdomain2.example.com/foo-bar',
 'https://subdomain2.example.com/foo-bar',
 'https://subdomain2.example.com/foo-bar',
 'https://subdomain2.example.com/foo-bar'
]

I need to search inside it to match the user input with the subdomain part of the url, I’m trying with thism line of code to achive it:

 const searched = urlList.find( el => el.includes( match[1].toLocaleLowerCase() ) )
 console.log(searched.length)

If the input is find, I need to replace the second part of the url, in my case /foo-bar with /foo-baz or /foo-baz-bar to obtain a response for the user that is something like https://subdomain2.example.com/foo-bar-baz/.

At the moment I’m not sure how to proceed, is there any function in JS that can help me?

Advertisement

Answer

You can simply achieve that with a single line of code.

const urlList = [
 'https://subdomain1.example.com/foo-bar/', 
 'https://subdomain2.example.com/foo-bar',
 'https://subdomain2.example.com/foo-bar',
 'https://subdomain2.example.com/foo-bar',
 'https://subdomain2.example.com/foo-bar'
];

const findSubString = 'foo-bar';
const replaceSubString = 'foo-baz';

const res = urlList.map((url) => url.replace(findSubString, replaceSubString));

console.log(res);
User contributions licensed under: CC BY-SA
6 People found this is helpful
Advertisement