Reputation: 45
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
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
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