Quint
Quint

Reputation: 45

Replace part of URL by user input for a lot of URL's

I have this Array with a lot of URLs:

let url_list = ["https://webew00236.be04.eu/request/pdfservice/L2020-29-001DAGS.pdf",
                "https://webew00236.be04.eu/request/pdfservice/L2020-29-001DAGR.pdf",
                "https://webew00236.be04.eu/request/pdfservice/L2020-29-001DEPV.pdf",
                "https://webew00236.be04.eu/request/pdfservice/L2020-29-001DAGF.pdf",
                "https://webew00236.be04.eu/request/pdfservice/L2020-29-001DAGL.pdf",
                "https://webew00236.be04.eu/request/pdfservice/L2020-29-001DAGT.pdf" ,
                "https://webew00236.be04.eu/request/pdfservice/L2020-29-001DAGE.pdf",   
                "https://webew00236.be04.eu/request/pdfservice/L2020-29-001DAGP.pdf",
                "https://webew00236.be04.eu/request/pdfservice/L2020-29-001DEP%25.pdf", 
                "https://webew00236.be04.eu/request/pdfservice/L2020-29-001DAGV.pdf",  
                "https://webew00236.be04.eu/request/pdfservice/L2020-29-001DEPN.pdf",    
                "https://webew00236.be04.eu/request/pdfservice/L2020-29-001DEPL.pdf",  
               ]

what I want to achieve is that I loop thru each Url and replace the '29' with something the user inputs. for example https://webew00236.be04.eu/request/pdfservice/L2020-29-001DEPL.pdf changes into https://webew00236.be04.eu/request/pdfservice/L2020-30-001DEPL.pdf and that for all urls in the array.

I have tried this but that's a lot of work If have to do it for every url:

function changeText2(){
    var userInput = document.getElementById('userInput').value;
    var lnk = document.getElementById('lnk');
    lnk.href = "https://webew00236.be04.eu/request/pdfservice/L2020-"+ userInput+"-001DAGS.pdf";
    lnk.innerHTML = lnk.href;
}

I tried a lot of different things but none of them give me the desired result.

Upvotes: 1

Views: 132

Answers (2)

StefanN
StefanN

Reputation: 911

The following code will replace 29 with the user input. You only have to append the results to the link :)

let url_list = ["https://webew00236.be04.eu/request/pdfservice/L2020-29-001DAGS.pdf",
  "https://webew00236.be04.eu/request/pdfservice/L2020-29-001DAGR.pdf",
  "https://webew00236.be04.eu/request/pdfservice/L2020-29-001DEPV.pdf",
  "https://webew00236.be04.eu/request/pdfservice/L2020-29-001DAGF.pdf",
  "https://webew00236.be04.eu/request/pdfservice/L2020-29-001DAGL.pdf",
  "https://webew00236.be04.eu/request/pdfservice/L2020-29-001DAGT.pdf",
  "https://webew00236.be04.eu/request/pdfservice/L2020-29-001DAGE.pdf",
  "https://webew00236.be04.eu/request/pdfservice/L2020-29-001DAGP.pdf",
  "https://webew00236.be04.eu/request/pdfservice/L2020-29-001DEP%25.pdf",
  "https://webew00236.be04.eu/request/pdfservice/L2020-29-001DAGV.pdf",
  "https://webew00236.be04.eu/request/pdfservice/L2020-29-001DEPN.pdf",
  "https://webew00236.be04.eu/request/pdfservice/L2020-29-001DEPL.pdf",
];

const replaceByUserInput = (user_input) => {
  return url_list.reduce((acc, curr) => {
    return [...acc, curr.replace(/-29-/g, `-${user_input}-`)];
  }, []);
}



document.getElementById('submit').addEventListener('click', e => {
  e.preventDefault();
  const userInput = document.getElementById('userInput').value;
  const replacedResult = replaceByUserInput(userInput);
  console.log(replacedResult);
});
<input type="text" id="userInput" />
<button id="submit">Submit</button>

Upvotes: 2

Unmitigated
Unmitigated

Reputation: 89214

You can use map and replace.

const res = url_list.map(url=>url.replace(/(L2020-)29/, "$1" + userInput));

let url_list = ["https://webew00236.be04.eu/request/pdfservice/L2020-29-001DAGS.pdf",
                "https://webew00236.be04.eu/request/pdfservice/L2020-29-001DAGR.pdf",
                "https://webew00236.be04.eu/request/pdfservice/L2020-29-001DEPV.pdf",
                "https://webew00236.be04.eu/request/pdfservice/L2020-29-001DAGF.pdf",
                "https://webew00236.be04.eu/request/pdfservice/L2020-29-001DAGL.pdf",
                "https://webew00236.be04.eu/request/pdfservice/L2020-29-001DAGT.pdf" ,
                "https://webew00236.be04.eu/request/pdfservice/L2020-29-001DAGE.pdf",   
                "https://webew00236.be04.eu/request/pdfservice/L2020-29-001DAGP.pdf",
                "https://webew00236.be04.eu/request/pdfservice/L2020-29-001DEP%25.pdf", 
                "https://webew00236.be04.eu/request/pdfservice/L2020-29-001DAGV.pdf",  
                "https://webew00236.be04.eu/request/pdfservice/L2020-29-001DEPN.pdf",    
                "https://webew00236.be04.eu/request/pdfservice/L2020-29-001DEPL.pdf",  
               ];
var userInput = 30;
const res = url_list.map(url=>url.replace(/(L2020-)29/, "$1" + userInput));
console.log(res);

Upvotes: 3

Related Questions