---
title: "Extrahera youtube-ids 11 tecken"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/189481-extrahera-youtube-ids-11-tecken"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "brorsan"
published: "2012-03-18T22:11:22.000Z"
updated: "2012-03-20T16:55:52.000Z"
replies: 36
views: 1874
page: 1
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/189481-extrahera-youtube-ids-11-tecken"
---

# Extrahera youtube-ids 11 tecken

_Sida 1 av 2._

## #1 — brorsan, 2012-03-18T22:11Z

Hejsan,
jag skulle behöva ha en enkel kod som när någon infogar en länk till sitt youtubeklipp då plockar ut de 11 tecken som är youtubeklippets unika id oavsett i vilken form koden är inklistrad. 

Typ: if adress = <http://www.youtube.com/watch?v=4N_GBVAeHeg> then
make address  4N_GBVAeHeg 

else if adress = <http://www.youtube.com/watch?v=4N_GBVAeHeg&feature=related> then
make address  4N_GBVAeHeg 

else if adress = <http://youtu.be/4N_GBVAeHeg> then
make address  4N_GBVAeHeg 

else if adress = \<iframe width="560" height="315" src="http://www.youtube.com/embed/4N_GBVAeHeg" frameborder="0" allowfullscreen\>\</iframe\> then 
make address  4N_GBVAeHeg 

else if adress = \<object width="560" height="315"\>\<param name="movie" value="http://www.youtube.com/v/4N_GBVAeHeg?version=3&amp;hl=sv_SE&amp;rel=0"\>\</param\>\<param name="allowFullScreen" value="true"\>\</param\>\<param name="allowscriptaccess" value="always"\>\</param\>\<embed src="http://www.youtube.com/v/4N_GBVAeHeg?version=3&amp;hl=sv_SE&amp;rel=0" type="application/x-shockwave-flash" width="560" height="315" allowscriptaccess="always" allowfullscreen="true"\>\</embed\>\</object\> then 
make address  4N_GBVAeHeg

4N_GBVAeHeg är såklart bara ett exempel och ska kunna vara vad som helst för kombination. 

med andra ord oavsett i vilken form av de ovan som användaren inflikar en länk till sitt youtubeklipp så rensas allt annat än hans 11 idtecken bort. 

Skulle vara schysst om någon vet hur man gör detta på ett smidigt sätt och kan tänka sig att klistra in koden komplett så att en asp-dyslektiker kan kopiera den. :) Tack på förhand!

Permalänk: https://www.webforum.nu/p/189481

## #2 — nitro2k01, 2012-03-19T05:59Z

Du bör använda ett reguljärt uttryck. Jag satte mig för att skriva ett sådant uttryck, men hittade ett bra [här](http://stackoverflow.com/questions/3452546/javascript-regex-how-to-get-youtube-video-id-from-url). Jag har även anpassat exempelkod [härifrån](http://www.zrinity.com/developers/code_samples/code.cfm/CodeID/135/ASP/Regular_Expressions_in_ASP_RegExp). Ingen aning om det kommer att funka i exakt denna utformning, alltså.

```
Set regex = New RegExp
regex.Pattern = "^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*"
Set matches = regx.Execute(adress)
Set match0 = matches(0)
Set youtubeid = match0(7)
```

Permalänk: https://www.webforum.nu/p/2296841

## #3 — civilpolisen, 2012-03-19T07:00Z

Om du, precis som jag, tycker RegExp är aningen kluriga och - ärligt talat - näst intill omänskligt luriga kan du kanske göra samma sak med Klassisk ASP.

"Kanske" skriver jag för att sista frågan verkar grymt omständig.

I denna tråden finns en länk till dokumentationen av ASP:
<http://www.webforum.nu/showthread.php?t=182288>

Jag länkar till tråden och inte till länken för i tråden står även hur du får det lilla plutteprogrammet att fungera med Windows 7.

Saker du kan experimentera med är till exempel inStr(xxx, yyy) (in string) och split("/").

Då det (enligt dig) alltid är just elva tecken så är det ju lätt på det viset.

Se om du får det att fungera!!

Permalänk: https://www.webforum.nu/p/2296842

## #4 — brorsan, 2012-03-19T08:36Z

tack för svaren jag ska prova!

Permalänk: https://www.webforum.nu/p/2296845

## #5 — brorsan, 2012-03-19T10:59Z

Nej, jag är helt klart inte kunnig nog för att få till det här. Provade så här och en rad andra sätt men får bara felmeddelanden. Sitter bara och chansar på vad som är fel utan att förstå koden typ.. ;) 

```
if rs12("message") > " " then  
Dim adress
Set adress = rs12("message")

Dim objRegExp

Set objRegExp = New RegExp

objRegExp.Global = True

objRegExp.IgnoreCase = True

objRegExp.Pattern = "^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*"
Set matches = regx.Execute(adress) 
Set match0 = matches(0)
Set youtubeid = match0(7)

response.write youtubeid 
response.write "youtubeid"
response.write match0 
response.write "match0"
response.write match0(7)
response.write "match0(7)"
response.write adress
response.write "adress"

Set adress = Nothing
Set objRegExp = Nothing

end if
```

Får felmeddelanden på raden med 

```
 Set matches = regx.Execute(adress)"
```

 och meddelandet är:

 

```
 

Object required: ''
```

Den som kan det här med regexp kanske ser direkt vad som är tokigt?

Permalänk: https://www.webforum.nu/p/2296848

## #6 — brorsan, 2012-03-19T11:14Z

civilpolisens förstod jag inte heller, verkade vara nåt program man skulle ladda ned? Vill helst bara ha kod.

Permalänk: https://www.webforum.nu/p/2296850

## #7 — @nders, 2012-03-19T11:21Z

Ditt objekt heter ju inte regx - du har ju kallat det för objRegExp.

Permalänk: https://www.webforum.nu/p/2296851

## #8 — @nders, 2012-03-19T11:22Z

> **[brorsan skrev:](https://www.webforum.nu/p/1548754)**
>
> civilpolisens förstod jag inte heller, verkade vara nåt program man skulle ladda ned? Vill helst bara ha kod.

Det är en dokumentation så man kan lära sig saker. Vill man inte lära sig något så slipper man.

edit: jag tycker väl iofs att man inte behöver lära sig vare sig asp eller vbscript - det finns tekniker som är liiite nyare och mer användbara.  =)

Permalänk: https://www.webforum.nu/p/2296852

## #9 — brorsan, 2012-03-19T12:20Z

@nders, känns mer som att du är ute efter att håna eller tillrättavisa mig än att hjälpa mig så nej som jag redan sagt kan jag kan inte detta och som också är sagt är det därför jag ber om hjälp från någon som kan och vill hjälpa genom att klistra in kod klar att använda så att en "asp-dyslektiker" kan förstå. 

Om att lära sig saker så har jag tidsbrist och prioriterar främst att lära mig nya saker inom mina intresseområden som är bl.a. hjälp till självhjälp till folk som mår dåligt/har ett svårt liv och inom kunskap om djur/natur och hur världsutvecklingen ser ut och hur man bäst förhåller sig till den för att må bra så att jag kan hjälpa folk med sånt. Alla kan inte ha programmering som främsta intresse att lära sig mer om. 

Genom åren har jag fått mycket fin hjälp här av schyssta människor och det har gjort att jag kunnat lägga tid på att göra saker för andra på de sätt jag är bra på som inte har med programmering att göra. Just nu är min prio att starta ett projekt i afrika för att hjälpa folk både där och här, men för att få ro till det skulle jag behöva laga min hemsida först och därför ber jag om hjälp med det. 

Men om det nu inte var ett program utan en text så ska jag ta en titt på det och se om det är något jag kan förstå med mina begränsade förkunskaper. Tack.

Permalänk: https://www.webforum.nu/p/2296855

## #10 — brorsan, 2012-03-19T12:31Z

Tittat på den igen och känner inte ens igen filändelsen och jag vet inte, men känns som att det borde finnas ett mycket enklare sätt att göra detta med någon trim/replace-kod liknande den som voigtan hjälpte mig med för några år sen. Eller kanske med koden ovan om man bara fixar det som du sa var fel. Problemet är att det där är en blandning av voigtans kod och nitros kod eftersom nitros inte är komplett och eftersom jag själv inte vet hur man skriver in en kod som nitros i ett dokument. Tacksam om någon vill korrigera och klistra in.

Permalänk: https://www.webforum.nu/p/2296856

## #11 — @nders, 2012-03-19T12:32Z

> **[brorsan skrev:](https://www.webforum.nu/p/1548760)**
>
> @nders, känns mer som att du är ute efter att håna eller tillrättavisa mig än att hjälpa mig så nej som jag redan sagt kan jag kan inte detta och som också är sagt är det därför jag ber om hjälp från någon som kan och vill hjälpa genom att klistra in kod klar att använda så att en "asp-dyslektiker" kan förstå.

Det var absolut inte meningen att du skulle känna så. Jag ber om ursäkt!

Jag hoppas du också såg mitt första inlägg då jag gav ett tips om vad som kunde ha genererat felmeddelandet? Så: jag försökte faktiskt hjälpa dig också...

Permalänk: https://www.webforum.nu/p/2296857

## #12 — brorsan, 2012-03-19T12:34Z

Ska man skriva om det till det här?

```
 Set matches = objRegExp.Execute(adress)"
```

Permalänk: https://www.webforum.nu/p/2296858

## #13 — @nders, 2012-03-19T12:35Z

Ja, men du har ett citationstecken sist där (copy/paste-fel?), som inte ska vara med.

Permalänk: https://www.webforum.nu/p/2296859

## #14 — brorsan, 2012-03-19T12:42Z

ok, tack, tar bort citationstecknet. 

Fick nu fel på en senare rad 

```
 Object not a collection: 'match0'
```

 

på raden med 

```
 Set youtubeid = match0(7)
```

Vad hänvisar (0) och (7) till om man får fråga? :)

Permalänk: https://www.webforum.nu/p/2296860

## #15 — brorsan, 2012-03-19T12:48Z

> Det var absolut inte meningen att du skulle känna så. Jag ber om ursäkt!
> 
> Jag hoppas du också såg mitt första inlägg då jag gav ett tips om vad som kunde ha genererat felmeddelandet? Så: jag försökte faktiskt hjälpa dig också...

Tack, ursäkten godtas och ber om ursäkt själv om jag missförstått/överreagerat/överanalyserat lite. När jag läste om det någon gång med båda inläggen kändes det som att jag kanske gjort det. Har varit utsatt för mycket stress, press och grubbel de senaste åren och inte minst senaste veckan så jag kanske är lite extra känslig av mig..

Permalänk: https://www.webforum.nu/p/2296861

## #16 — @nders, 2012-03-19T12:53Z

Jag kan tyvärr inte regexp heller - det är helt omöjligt att lära sig! - så jag hoppas att nitro kan kliva tillbaka in. Annars kan säkert voigtann1 - han är en riktig j\*\*el på regexp.  =)

Permalänk: https://www.webforum.nu/p/2296863

## #17 — nitro2k01, 2012-03-19T12:54Z

> **[brorsan skrev:](https://www.webforum.nu/p/1548765)**
>
> ok, tack, tar bort citationstecknet. 
> 
> Fick nu fel på en senare rad 
> 
>
>
> ```
>  Object not a collection: 'match0'
> ```
>
>  
> 
> på raden med 
> 
>
>
> ```
>  Set youtubeid = match0(7)
> ```
>
> 
> 
> Vad hänvisar (0) och (7) till om man får fråga? :)

När du först kör regex-anropet får du tillbaka en lista med matchningar för hela uttrycket. Din sträng kan t ex innehålla flera YouTube-länkar, och då är varje sådan länk en matchning för sig. Nästa steg är i sin tur att plocka ut undermatchningar inom uttrycket. Varje parentes skapar en ny undermatchning, något man förövrigt kan använda för att plocka ut flera saker med ett anrop. I detta fall råkar uttrycket innehålla mycket parenteser och själva ID't hamnar på plats 7.

Permalänk: https://www.webforum.nu/p/2296864

## #18 — voigtann1, 2012-03-19T12:59Z

> **[@nders skrev:](https://www.webforum.nu/p/1548768)**
>
> Jag kan tyvärr inte regexp heller - det är helt omöjligt att lära sig! - så jag hoppas att nitro kan kliva tillbaka in. Annars kan säkert voigtann1 - han är en riktig j\*\*el på regexp.  =)

Jasså?

men vad är **rs12("message")**är det ett objekt? Sen få du nog kolla om det finns en kollektion, om den inte hittar uttrycket så kan den inte hämta ut posterna heller.

Permalänk: https://www.webforum.nu/p/2296865

## #19 — nitro2k01, 2012-03-19T13:05Z

Jag kanske för övrigt ska tillägga att jag har noll erfarenhet med ASP och försökte klistra ihop något efter bästa förmåga utifrån tillgänglig exempelkod. Regex i sig kan jag däremot hyfsat.

Permalänk: https://www.webforum.nu/p/2296866

## #20 — brorsan, 2012-03-19T13:17Z

> @nders skrev:  
> Jag kan tyvärr inte regexp heller - det är helt omöjligt att lära sig!

Ja det är helt klart svårare att se logiken i det "språket" än i asp! 

> voigtann1 - han är en riktig j\*\*el på regexp. =)

håller med :)

 

> Jag kanske för övrigt ska tillägga att jag har noll erfarenhet med ASP och försökte klistra ihop något efter bästa förmåga utifrån tillgänglig exempelkod. Regex i sig kan jag däremot hyfsat.

Aha, ok. 

> men vad är rs12("message")är det ett objekt? Sen få du nog kolla om det finns en kollektion, om den inte hittar uttrycket så kan den inte hämta ut posterna heller.

För att bara prova om jag kan få själva ändringen från <http://www.youtube.com/watch?v=7EXXFlygmQY&feature=pyv&ad=7138752123&kw=skateboard> till 7EXXFlygmQY har jag lagt den hela länken i en databas i ett fält som heter message. Försöker hämta den långa och skriva ut den som 7EXXFlygmQY . 

Om jag lyckades med det tänkte jag sen försöka justera det så att ändringen görs redan när en medlem postar länken så att bara 7EXXFlygmQY skrivs in i databasen, inte hela länken, så detta var tänkt att vara ett första test på själva "omvandlingen" bara.

Permalänk: https://www.webforum.nu/p/2296867

---

Tråden på webben: https://www.webforum.nu/amne/asp/189481-extrahera-youtube-ids-11-tecken  
Nästa sida: https://www.webforum.nu/amne/asp/189481-extrahera-youtube-ids-11-tecken/page2.md
