我有一个YouTube视频的网址。现在,我需要提取一个字符串并将其保存到一个变量中。在这里,我需要从URL中提取videoid。这个链接是:如何从Swift 3中的URL中提取字符串?
https://www.youtube.com/watch?v=iTcq6L-PaDQ
现在,我需要提取iTcq6L-PaDQ
斯威夫特3.
我有一个YouTube视频的网址。现在,我需要提取一个字符串并将其保存到一个变量中。在这里,我需要从URL中提取videoid。这个链接是:如何从Swift 3中的URL中提取字符串?
https://www.youtube.com/watch?v=iTcq6L-PaDQ
现在,我需要提取iTcq6L-PaDQ
斯威夫特3.
雨燕3.0
您可以从字符串URL获取视频ID为子像下面。
let url = URL(string: "https://www.youtube.com/watch?v=iTcq6L-PaDQ")!.absoluteString
let Id = url.substring(from: url.range(of: "?v=")!.upperBound)
你可以按照这个例子
let url = ___Your_URL_HERE____
let path = String(contentsOf: url)
let startIndex = path.index(path.startIndex, offsetBy: 32) //32 because 'https://www.youtube.com/watch?v=' is fixed from youtube
let videoid = path.substring(from: startIndex)
print(videoid)
它显示错误为“类型的值 'URL' 没有成员'索引'“。我该如何解决这个问题? @ Umesh Verma – Tamannah
如果你有url,那么先将它转换为字符串。检查我更新的答案 –
您可以通过分开URL字符串“? v =“这对任何YouTube视频都很常见。
let path = URL(string: "https://www.youtube.com/watch?v=iTcq6L-PaDQ")
let url = path!.absoluteString
let array = url.components(separatedBy: "?v=")
let id = array[1]
NSLog("video id: %@.", id)
它显示错误为“值的类型'URL'没有成员”组件“。我怎样才能解决这个问题?@ Rahul Kumar – Tamannah
转换URL类型为String,使用URL.absoluteString,你可以得到String键入 –
编辑了上面的代码 –
与URLComponents/URLQueryItem
if let urlComponents = URLComponents(string:"https://www.youtube.com/watch?v=iTcq6L-PaDQ"),
let queryItem = urlComponents.queryItems?.first(where: {$0.name == "v"}) {
print(queryItem.value!)
}
或作为功能
func queryValue(for name : String, of url: URL) -> String?
{
guard let urlComponents = URLComponents(url:url, resolvingAgainstBaseURL:false),
let queryItem = urlComponents.queryItems?.first(where: {$0.name == name}) else { return nil }
return queryItem.value
}
queryValue(for: "v", of: URL(string:"https://www.youtube.com/watch?v=iTcq6L-PaDQ")!)
字符串现代溶液( “你的URL”) –