Avatar billede kongen72 Nybegynder
21. december 2009 - 01:01 Der er 14 kommentarer og
1 løsning

webadresse format

hej,

Kan ikke rigtig finde noget på nettet angående dette.

Så håber nogle herinde kan hjælpe mig med et javascript.

har en textbox, hvor man skal kunne indtaste en webadresse i, ligemeget hvordan man indtaster webadressen i textboxen så skal den altid gemmes som (domain.dk).
Så det er ligegyldigt om man indtaster med http:// , www. , http://www. eller noget andet foran domain.dk..
Avatar billede Slettet bruger
21. december 2009 - 15:10 #1
Er det JavaScript eller Java - eller skal det postes til noget serversidescript?
Avatar billede kongen72 Nybegynder
21. december 2009 - 16:57 #2
javascript eller noget c#. De kan skrive webadressen som de har lyst til. Men så snart de klikker på "send knappen", så skal det gemmes som (domain.dk).

Er vi mere i noget c#?
Avatar billede Slettet bruger
21. december 2009 - 20:23 #3
Ja... Hvis det skal gemmes serverside (altså på serveren).
Så er vi nok ude i noget regular expression - Jeg har ikke lige installeret Visual Studio, så det er ikke testet (tyvstjålet fra http://regexlib.com/Search.aspx?k=website&c=-1&m=-1&ps=20 - den der hedder "Website validation" - dog med få modifikationer):

using System.Text.RegularExpressions;
Regex r = new Regex("^(?:(?:http|https|ftp):\/\/(?:www\.)?|www\.)([a-zA-Z0-9\_\-]+\.(?:[a-zA-Z]{2,4}|[a-zA-Z]{2}\.[a-zA-Z]{2})(?:\/[a-zA-Z0-9\-\._\?\&=,'\+%\$#~]*)*$");
Match m = Regex.Match("http://www.eksperten.dk/spm/896152#reply_7509136");
if(m.Success){
  Group g = m.Group(1);
  String domain = g.ToString();
}

/1
Avatar billede tjens Nybegynder
21. december 2009 - 20:14 #4
Prøv at kigge på dette script:
http://blog.stevenlevithan.com/archives/parseuri-split-url

Den kan give dig en værdi der hedder Host.

Det er dog incl. evt. subdomæne som f.eks. WWW

Der er nok lidt svært at fjerne disse subdomæner, da f.eks. engelske domæner har et ekstra niveau:  bbc.co.uk
Avatar billede kongen72 Nybegynder
21. december 2009 - 21:03 #5
Tak for jeres feedback.. Jeg søger ikke validations..
Når brugeren indtaster en webadresse i tekstfeltet. Så skal den ikke komme med fejl. De må gerne indtaste f.eks: www.domain.dk. Men når den bliver gemt skal den automatisk finde ud af og fjerne www.
Avatar billede Slettet bruger
21. december 2009 - 21:17 #6
Det skulle min løsning gøre.
Avatar billede tjens Nybegynder
21. december 2009 - 21:19 #7
#5 hvordan skal den behandle f.eks.

http://nyhederne.tv2.dk/

http://bbc.co.uk/

Beskriv reglerne lidt nærmere tak.
Avatar billede Slettet bruger
21. december 2009 - 21:22 #8
Kommenteret:

using System.Text.RegularExpressions;

Regex r = new Regex("^(?:(?:http|https|ftp):\/\/(?:www\.)?|www\.)([a-zA-Z0-9\_\-]+\.(?:[a-zA-Z]{2,4}|[a-zA-Z]{2}\.[a-zA-Z]{2})(?:\/[a-zA-Z0-9\-\._\?\&=,'\+%\$#~]*)*$"); //Opretter et Regex pattern, der finder domain i en url.
Match m = Regex.Match("http://www.eksperten.dk/spm/896152#reply_7509136"); //Benytter der oprettede pattern på en specifik url
if(m.Success){ //Hvis pattern (domain) findes
  Group g = m.Group(1); //Find gruppen i matchet, som indeholder domain
  String domain = g.ToString(); //Gemmer domain i en string variabel
}
Avatar billede kongen72 Nybegynder
21. december 2009 - 22:02 #9
#7

Du har ret, vil gerne have den lidt om..

Vil gerne have, at når brugeren indtaster sin webadresse i tekstfeltet, så skal den automatisk gemme med http:// foran webadressen, dog kun hvis man underlader at skrive http://.

-og kan man lave det sådan, at man ikke kan skrive andre tegn end (bogstaver), (tal) og (-) i tekstfeltet?

Er det noget i kan klare?
Avatar billede Slettet bruger
21. december 2009 - 22:14 #10
Ok.. Så du vil have det i JavaScript, og det skal valideres, så der altid står en korrekt addresse på formen http://domain.dk?
Hvad med www?
Avatar billede kongen72 Nybegynder
21. december 2009 - 22:43 #11
ja præcis.. hvis de skriver www.domain.dk, så skal http:// bare lægges foran..
Avatar billede tjens Nybegynder
22. december 2009 - 09:08 #12
#11 Dette spørgsmål er vist blevet ændret så meget siden #0, så du hellere må lukke det.

Forsøg selv, og stil et nyt spørgsmål, hvis du kommer i problemer.

Javascript hint:
if (strLink.indexOf('http://') < 0) strLink = 'http://' + strLink;
Avatar billede Slettet bruger
22. december 2009 - 09:30 #13
Er det mens brugeren skriver eller når der bliver posted?

Hvis det er mens der skrives, vil jeg kraftigt fraråde dette. Der er ikke noget mere irriterende end når et tekstfelt valideres ved at slette eller tilføje karakterer. Der skal også tages højde for cursor placering før og efter.

Hvis jeg var dig, ville jeg holde mig til serverside validering og evt. give brugeren en advarsel, når der postes noget forkert.
Det er simplere, og der er garanti for cross browser support.

Alternativt kan du med et billede vise, om inputtet er korrekt.

/1
Avatar billede kongen72 Nybegynder
22. december 2009 - 11:56 #14
#13 - synes det lyder som en rigtig god ide.. Hvordan kan jeg lave det? -og med et billede ud foran?
Avatar billede Slettet bruger
22. december 2009 - 14:05 #15
Noget i denne retning..

<html>
    <script>
        var r = new RegExp("^(?:(?:http|https):(?://)?)?((?:www\\.)?[\\w\\_\\-]+\\.(?:[a-zA-Z]{2,4}|[a-zA-Z]{2}\\.[a-zA-Z]{2}))(?:/[a-zA-Z0-9\\-\\._\\?\\&=,'\\+%\\$#~]*)*$");
        function getDomain(url){
            var m = r.exec(url);
            if(m != null){
                return "http://" + m[1];
            }
        }
        function urlChanged(source,destination){
            url = getDomain(source.value);
           
            picture = "validURL.jpg";
            if(url == undefined){
                picture = "inValidURL.jpg";
            }
            destination.src = picture;
        }
    </script>
    <input type='text' onKeyUp='urlChanged(this,document.getElementById("validate"))'>
    <img src='inValidURL.jpg' id='validate' height='20' width='20'>
</html>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester