Linkprüfung
DerGeflügelteEierkopf
- javascript
Hi liebes Forum,
ich möchte mit der untenstehenden Funktion über Javascript gerne einen Link aus einem Feld prüfen. Dabei ist es wichtig ob der Link am Anfang das "http://" enthält. soweit kein Problem, aber wenn ich nun prüfen möchte ob das "http:\" so geschrieben wurde, dann funktioniert das nicht so wie es das soll.
über eine Hilfestellung würde ich mich freuen.
Hier meine Funktion
function Check_Link()
{
var linkinhalt = document.WebForm._BBLink.value;
var linkausgabe;
var linkergaenzung = "http://";
if(linkinhalt.substr(0,7) != "http://")
{
if(linkinhalt.substr(0,7) == "http:\")
{
var laenge = linkinhalt.length;
linkausgabe = linkinhalt.substr(7,laenge);
linkausgabe = linkergaenzung .concat(linkinhalt);
alert(linkausgabe);
document.WebForm._BBLink.value = linkausgabe;
}
else
{
linkausgabe = linkergaenzung .concat(linkinhalt);
alert(linkausgabe);
document.WebForm._BBLink.value = linkausgabe;
}
}
}
Hallo,
deer Backslash ist in JavaScript ein Maskierungszeichen, zeigt also an, dass das nachfolgende Zeichen nicht interpretiert werden soll. Schreibst Du if(linkinhalt.substr(0,7) == "http:\"), kriegt der Interpreter also tatsächlich if(linkinhalt.substr(0,7) == "http:") zu lesen - was nicht gehen kann. Du müsstest also jeden Backslash wieder mit einem Backslash maskieren (sodass er nicht mehr als Maskierung interpretiert wird): if(linkinhalt.substr(0,7) == "http:\\")
Grüße,
Utz
if(linkinhalt.substr(0,7) == "http:\")
{
var laenge = linkinhalt.length;
linkausgabe = linkinhalt.substr(7,laenge);
->hier mußt Du zudem aus "linkinhalt" den restlichen string herausziehen... (=linkrest)
->linkausgabe = linkergaenzung .concat(linkinhalt, linkrest);
...
das hier zum einen ein fehler. ob noch mehr drin sind keine ahnung ...
nicht sehr elegant gelöst, aber naja.
in zukunft könntest Du außerdem eine genauere fehlerbeschreibung angeben.
mfG,
Markus.
in zukunft könntest Du außerdem eine genauere fehlerbeschreibung angeben.
Ja und in Zukunft könntest Du auch ne gescheite Lösung geben!!
in zukunft könntest Du außerdem eine genauere fehlerbeschreibung angeben.
Ja und in Zukunft könntest Du auch ne gescheite Lösung geben!!
Damit meine ich eine Antwort, die ich als Anfänger auch verstehen kann!
hallo,
wenn ich nun prüfen möchte ob das "http:\" so geschrieben wurde, dann funktioniert das nicht so wie es das soll
Doch, es funktioniert genauso, wie es soll, bloß erwartest du etwas anderes. Der Backslash hat eine bestimmte Funktion, er dient beispielsweise auch zur "Maskierung" von Zeichen. Außerdem: du solltest nicht prüfen, ob jemand das Protokoll korrekt angegeben hat, mit den Backslashes funktioniert das ja auch in der Adreßzeile des Browsers nicht. Prüfe einfach, ob "http://" dort steht, und wenn irgendwas andres angegeben wurde, setzt dann eben deine Reaktion ein.
Grüße aus Berlin
Christoph S.
Hallo,
als kleiner Tipp, probier mal folgendes aus:
alert("*\n*");
alert("*\n*");
alert("*\*");
alert("*\\*");
HTH
Maxx
Habs jetzt selber hinbekommen, denn ausser den Markierungszeichen war noch ein Fehler drin.
Trotzdem Danke