JavaScript ein teil eines strings vergleichen

hallo wer weiss was forum,

ich habe für mich ein nicht lösbares problem
ich will denn einen string ,thisLink" überprüfen ob der anfang des strings erfüllt ist also nur bis zum *
ab dem stern ist egal welsche zeichen noch folgen…

thisLink = allLinks.snapshotItem(i);

if (thisLink == 'http://www.wer-kennt-wen.de/person/*’); {

alert(„thisLink ist bis zum * Gleich! bedingung ist erfüllt link öffnet sich“);
window.location.href = thisLink;
}

danke schon im voraus für denjenigen der mir helfen kann!

Sorry, da kann ich nicht weiterhelfen…

P.

Hallo,

mit Strings kann man eine Menge Machen. Nach zu lesen hier: http://de.selfhtml.org/javascript/objekte/string.htm

Für deinen Fall wäre ne RegEx (Regulärer Ausdruck) am einfachsten:

var found = thisLink.search(/^http:\/\/www.wer-kennt-wen.de\/person\/.+$/);
if (found != -1)
{
 //code wenn der link stimmt
}
else
{
 //code wenn der link nicht stimmt
}

Im einzelnen besagt das Argument bei thisLink.search() folgendes:

Am Beginn des Strings (^) steht dein Link. Danach kommen beliebige Zeichen (.+) und dann ist der String zu Ende ($). Du kannst das .+ auch entsprechend aus tauschen um noch zu prüfen ob der Rest des Strings noch richtig ist, beispielweise obs nur buchstaben sind ([a-z]+).
RegEx’en in JavaScript sind zum Beispiel hier erklärt: http://de.selfhtml.org/perl/sprache/regexpr.htm

P.S.: Verzeih den schlecht formatierten Code aber der pre- tag hat irgendwie nicht funktioniert

P.S.S.: Offensichtlich hat der pre- tag doch funktioniert. In der Vorschau allerdings nicht. Naja, sieht ja nun gut aus.

var sollURL = „http://www.wer-kennt-wen.de/person/“;
var istURL = document.location.href;
var checkURL = istURL.search(sollURL);
if(checkURL != -1) window.location.href = sollURL;
else alert(„falscher Link“);

Skript kann so in den head-Bereich eingebunden werden. Wenn es nur darum geht den Anfang der URL abzuklären reicht obiges Skript. Falls die sich dann zu öffnende URL dynamisch ist, muss nach der if-Bedingung entsprechend andere Variablendeklaration eingesetzt werden.

Hallo,

mit Strings kann man eine Menge Machen. Nach zu lesen hier:
http://de.selfhtml.org/javascript/objekte/string.htm

Für deinen Fall wäre ne RegEx (Regulärer Ausdruck) am
einfachsten:

var found =
thisLink.search(/^http://www.wer-kennt-wen.de/person/.+$/);
if (found != -1)
{
//code wenn der link stimmt
}
else
{
//code wenn der link nicht stimmt
}

Hallo haui… leider funktieniert das nicht in kombination mit gracemonkey firefox scripte! keine ahnung ich bekomme auch bei deinem code die gleichen fehlermeldungen wenn ich irgendeine strin funktion von sehlf html nehme!
der fehler heist:

thisLinks.search is not a funktion!

ich hoffe du kannst mir weiter helfen weil du die beste antwort mir geschrieben hast hier in wer weis was!

grüße an dich
ilyas

danke Jürgen aber es soll möglich im voraus prüfen ob der es sich um die wunsch url handelt bevor er auf die seite geht!

kannst du mir weiter helfen? ich habe das auch forum nun geschrieben damit wenn jemmand anderes das gleiche problem hat er die lösung direkt sehen kann.

grüße an dich jürgen

Hallo ilyas,

wenn du mir die entsprechenden JavaScript Funktionen die du geschrieben hast einmal postest, werde ich einen Blick drauf werfen. Meistens steckt der Fehler im Detail :smile:.

also hier der ganze code hoffe das hilft:

var allLinks, thisLink;

allLinks = document.evaluate(
‚//a[@href]‘,
document,
null,
XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
null);

for (var i = 0; i

Da Javascript clientseitig funktioniert (abgesehen von ajax), kann immer nur eine Aktion im Browser des Benutzers kontrolliert werden. Obiges Skript würde ja nur dann eine neue Seite laden, wenn Bedingung erfüllt ist.
Dennoch hier eine andere Variante:

checklink
var sollURL = „http://www.wer-kennt-wen.de/person/“;
function checklink(istURL){
var checkURL = istURL.search(sollURL);
if(checkURL != -1) window.location.href = istURL;
else alert(„falscher Link“);
}
[Dies ist ein Link](javascript:checklink(‚http://www.wer-kennt-wen.de/person/test.html‘))

Hallo ilyas,

die Snapshotitems sind keine Strings sondern irgendwelche XPathNodes (die genaue Bezeichnung kenne ich jetzt nicht).

Für deine Links kannst du aber direkt auf das href- Attribut zugreifen:

var found = thisLink.href.search(/^http:\/\/www.wer-kennt-wen.de\/person\/.+$/);

Dann funktioniert es, zumindest bei mir im FireFox.

Hoffe das hilft.

Grüße,
haui

Leider kann ich nicht helfen.
Versuchs mal hier http://rheinbreitbach.net/js-menue/
Gruß