簡體   English   中英

獲取 URL 字符串的特定部分

[英]Get specific portion of a URL string

這是一個工作代碼,我必須獲取 URL 字符串的特定部分:

 const movieName = "frozen_2019"; const courseName = "olaf_is_enjoying_living_his_dream_1"; const source = "your majesty from https://example.com/english/courses/frozen_2019/olaf_is_enjoying_living_his_dream_1/voices/references/translate/do%20you%20hear%20that.mp3"; console.log(getSourceError(source)); // result function getSourceError(source) { const a = source.substring(source.indexOf(courseName) + courseName.length + 1); const b = a.substring(a.lastIndexOf("/")); return a.replace(b , ""); }

雖然它按預期工作,但我認為應該有一個更清潔的解決方案來做到這一點......

如您所見,我想要在 URl 末尾的courseNamefile name之間的字符串。

我不完全確定您所說的更清潔的解決方案是什么意思,但這是一個帶有正則表達式的單行代碼,假設您有與代碼片段中相同的變量名稱。 這是你想要達到的目標嗎? 如果需要,您可以修剪最后一個和第一個字符以刪除斜線。

 const source = "your majesty from https://example.com/english/courses/frozen_2019/olaf_is_enjoying_living_his_dream_1/voices/references/translate/do%20you%20hear%20that.mp3"; const courseName = "olaf_is_enjoying_living_his_dream_1"; let extracted = source.match("(?<="+courseName+").*\\/"); console.log(extracted);

如您所見,我想要在 URL 末尾的 courseName 和文件名之間的字符串。

在操作 URL 字符串時,使用以下方法將字符串拆分為數組通常是個好主意:

let myURLArray = myURLString.split('/');

然后,在這種情況下,您可以使用:

  • indexOf()
  • splice()
  • join()

返回您想要的 URL 部分。

工作示例:

 const courseName = "olaf_is_enjoying_living_his_dream_1"; const source = "your majesty from https://example.com/english/courses/frozen_2019/olaf_is_enjoying_living_his_dream_1/voices/references/translate/do%20you%20hear%20that.mp3"; let sourceArray = source.split('/'); let courseNameIndex = sourceArray.indexOf(courseName); let urlSectionArray = sourceArray.splice((courseNameIndex + 1), ((sourceArray.length - 1) - courseNameIndex - 1)); let urlSection = urlSectionArray.join('/'); console.log(urlSection);

嗨,如果您的來源與其結構一致,您可以拆分並加入您需要的部分。

source.split('/').splice(7,3).join('/')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM