[英]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 末尾的courseName
和file 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.