используя replace (), чтобы получить идентификатор из каждой ссылки, хранящейся в массиве? - PullRequest
2 голосов
/ 27 января 2020

Список ссылок берется из ввода, в то время как каждая ссылка во входе разделяется пробелом, чтобы впоследствии его можно было разделить в коде. Я попытался использовать следующий код, цель состоит в том, чтобы привести только к части id всех ссылок в массиве. Но вместо этого это приводит только к идентификатору первой ссылки, а остальные ссылки остаются неизменными.

вот два примера ссылок:

https://drive.google.com/file/d/1jTZ37iVWdb6MEs1HQzFtkKaOmEVNoG9n/view?usp=sharing

https://drive.google.com/file/d/1QlwvBmXzO56Prq4WLERS4tpD2Kcp2yOr/view?usp=sharing

здесь jquery:

$("#checklist").on("click", function () {

  var value = $("#uploadlist").val();
  var arr= value.split(" ")

  $.each(arr, function(key, list){

  if (list.startsWith("https://drive.google.com/file/d/") & 
     list.endsWith("/view?usp=sharing")) {

     var id1 = list.replace("https://drive.google.com/file/d/", "");
     var id= id1.replace("/view?usp=sharing", "");

    console.log(id)
})

Я также пытался использовать:

    var id= list.replace("https://drive.google.com/file/d/", "").replace("/view? 
    usp=sharing","");
    console.log(id);

Ответы [ 2 ]

1 голос
/ 27 января 2020
  1. Разделить на \nhttp
  2. Найти идентификатор

var links=`https://drive.google.com/file/d/1jTZ37iVWdb6MEs1HQzFtkKaOmEVNoG9n/view?usp=sharing

https://drive.google.com/file/d/1QlwvBmXzO56Prq4WLERS4tpD2Kcp2yOr/view?usp=sharing
`;

links = links
  .split(/\nhttp/)
  .map((link)=>{
    return link.replace(/(.*?)file\/d\//, "").replace(/\/view(.*?)+\n/,"");
  });

console.log(links);
0 голосов
/ 27 января 2020

Обнаружил вашу ошибку:

Вы написали:

list.endsWith("/viewusp=sharing"))

вместо

list.endsWith("/view?usp=sharing"))

Было бы хорошей идеей поставить начало и конец URL в переменной и не повторять их.

$("#checklist").on("click", function () {

    const start = "https://drive.google.com/file/d/"
    const end = "view?usp=sharing"
    var value = $("#uploadlist").val();
    var arr= value.split(" ")

    $.each(arr, function(key, list){
        if (list.startsWith(start) & list.endsWith(end)) {
            const id = list.replace(start,"").replace(end,"");
            console.log(id);
        }
    });

    //The rest of your code here

}); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...