【问题标题】:How to only get a certain portion of string?如何只获取字符串的特定部分?
【发布时间】:2019-10-25 12:02:02
【问题描述】:

我有从 get 请求中收到的这个字符串:


Rekryteringstest for anställning


Det här är rekryteringstestet och samtidigt den sida som är data until programt som ska skrivas

Uppgiften är ganska generellt skriven för att passa både för de som löser den i t ex Java och de som löser den som t ex en webbsida。

Skriv en lösning som: 1. Öppnar ett fönster (om inte resultatet visas i t ex webbläsare) 2. Laddar webbadresser till bilder med tillhörande kommentar (längst ner på den här sidan, nya bilder varje gång sidan laddas!) 3. Laddar och visar bilderna med tillhörande kommentar 4. Laddar om data (från den här sidan!) automatiskt var 30:e sekund, vid omladdning kan gamla bilder tas bort 5. Har en knapp för att manuellt trigga omladdning 6. Visar någon form av status när data laddas 7. Har en knapp för att avsluta applikationen 8. Har en 'Om'-dialog som visar kontaktinformation 直到挖掘 9. Lösningen ska vara enkel att testköra och om applicbart EN körbar fil

A.在 lösningen 的 Skicka 包括所有 kod 直到 Bouvet

Hur applikationen ser ut är inte lika viktigt som hur applikationen med tillhörande 单元测试 är skriven och fungerar。

数据: https://images.unsplash.com/photo-1514125067037-8e669dd37638?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=1e2adb26fb5dc49fc14efd7f6aeca128&auto=format&fit=crop&w=1650&q=80Mer publik

--------- 响应字符串结束 ------------

每次我提出请求时,链接后的 https 链接和文本都会更新。

我怎样才能轻松地在这个大字符串中只获取这些值?

我试过了

    let splittedArray = response.data.split( "Data:" );

然后我得到了这个

<URL kommentar>
http://3.bp.blogspot.com/-_gbAWeYsKP4/T899GpY3CSI/AAAAAAAAACw/du8qLqu4xEo/s1600/empty.jpg Lådan
https://images.unsplash.com/photo-1514125067037-8e669dd37638?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=1e2adb26fb5dc49fc14efd7f6aeca128&auto=format&fit=crop&w=1650&q=80 Mer publik

例如。

从这里我想将 https 链接和文本分成不同的部分,以便我可以轻松使用它们。目前我不能使用 split 因为它是一个数组(最后一部分)

【问题讨论】:

  • “目前我不能使用 split,因为它是一个数组(最后一部分)”:是什么阻止您获取数组的每个元素,并对它们应用 split ?
  • 我可以获取数组的最后一部分,但我想从那里将​​每一行拆分为自己的索引。我需要遍历这些并将它们放入 img src 和 p 标签中进行描述。此刻它都在一个索引数组中
  • 您到底期望什么?我看不出你到底在哪里需要帮助。确实可以使用循环。你试过了吗?
  • 获取最后一部分的代码就是上面那个 let splittedArray = response.data.split("Data:");我的问题是我现在拥有的最后一部分是一个包含 1 个项目的数组(所有链接等)。但是我希望它是每个链接 1 项等
  • 是的,这是有道理的!那是我的主要问题,现在我得到了我想要的。创建一个答案,我会将其标记为正确的:)

标签: javascript axios


【解决方案1】:

根据 cmets 中的说明,让我们从这里的示例数据开始:

let splittedArray = [
  "part to be discarded", 
  "<URL kommentar> http://3.bp.blogspot.com/-_gbAWeYsKP4/T899GpY3CSI/AAAAAAAAACw/du8qLqu4xEo/s1600/empty.jpg Lådan
https://images.unsplash.com/photo-1514125067037-8e669dd37638?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=1e2adb26fb5dc49fc14efd7f6aeca128&auto=format&fit=crop&w=1650&q=80 Mer publik"
];

那么,您不能简单地在变量splittedArray 上使用split

如果您想对第二部分(实际包含链接的字符串)进行进一步操作,则需要通过将其引用为 splittedArray[1] 来获取此部分。

那么你可以用空格字符分割它,并保留以'http'开头的那些。

splittedArray[1].split(/\s+/)

let splittedArray = [
  "part to be discarded", 
  "<URL kommentar> http://3.bp.blogspot.com/-_gbAWeYsKP4/T899GpY3CSI/AAAAAAAAACw/du8qLqu4xEo/s1600/empty.jpg Lådan \
https://images.unsplash.com/photo-1514125067037-8e669dd37638?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=1e2adb26fb5dc49fc14efd7f6aeca128&auto=format&fit=crop&w=1650&q=80 Mer publik"
];

let splittedSecondPart = splittedArray[1].split(/\s+/);

let filteredByHttp = splittedSecondPart.filter(x => x.startsWith('http'));

console.log(filteredByHttp);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-03
    • 2021-08-12
    • 2021-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多