通过用户输入替换部分URL,以获取许多URL

时间:2020-07-15 13:34:26

标签: javascript

我有很多网址的这个数组:

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",  
               ]

我要实现的是我遍历每个网址,并用用户输入的内容替换“ 29”。 例如,https://webew00236.be04.eu/request/pdfservice/L2020-29-001DEPL.pdf更改为https://webew00236.be04.eu/request/pdfservice/L2020-30-001DEPL.pdf,并更改为数组中所有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;
}

我尝试了很多不同的方法,但是没有一个能给我想要的结果。

2 个答案:

答案 0 :(得分:3)

您可以使用mapreplace

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

答案 1 :(得分:2)

以下代码将用用户输入替换29。您只需要将结果附加到链接:)

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>

相关问题