|| oder bei content.split
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
abfrage
ansatz
array
auslese
bauen
code
dank
ergebnis
frage
hilfe
klausel
match
patte
problem
stelle
string
suche
tip
url
vorkommen
-
Hi,
ich habe auch mal wieder ein Frage.
Gibt es die Möglichkeit in das folgende Codestück eine oder (||) "Klausel" einzugügen?
Es wird nur ein Stück aus dem Quelltext ausgelesen, leider kann die erste Stelle 2 verschiedene Namen haben.
Darum würde ich das gern über
machen.||
// so habe ich den Code jetzt var ht_name_all_on1 = content.split('class="petname ">')[1];// ID wird ermittelt HT 1 var ht_name_all_off1 = (ht_name_all_on1 != undefined) ? ht_name_all_on1.split('<')[0].trim() : '';// ID wird ermittelt HT 1 // So stelle ich mir das vor var ht_name_all_on1 = content.split('class="petname ">' || 'class="anderer_petname ">')[1];// ID wird ermittelt HT 1 var ht_name_all_off1 = (ht_name_all_on1 != undefined) ? ht_name_all_on1.split('<')[0].trim() : '';// ID wird ermittelt HT 1
So gehts es halt leider nicht aber ich hoffe man versteht was ich meine.
Wäre über jeden Tip dankbar.
Gruß und schönes WE euch
Marco -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
aff3m1tw4ff3 schrieb:
Hi,
ich habe auch mal wieder ein Frage.
Gibt es die Möglichkeit in das folgende Codestück eine oder (||) "Klausel" einzugügen?
Es wird nur ein Stück aus dem Quelltext ausgelesen, leider kann die erste Stelle 2 verschiedene Namen haben.
Darum würde ich das gern über
machen.||
// so habe ich den Code jetzt var ht_name_all_on1 = content.split('class="petname ">')[1];// ID wird ermittelt HT 1 var ht_name_all_off1 = (ht_name_all_on1 != undefined) ? ht_name_all_on1.split('<')[0].trim() : '';// ID wird ermittelt HT 1 // So stelle ich mir das vor var ht_name_all_on1 = content.split('class="petname ">' || 'class="anderer_petname ">')[1];// ID wird ermittelt HT 1 var ht_name_all_off1 = (ht_name_all_on1 != undefined) ? ht_name_all_on1.split('<')[0].trim() : '';// ID wird ermittelt HT 1
So gehts es halt leider nicht aber ich hoffe man versteht was ich meine.
Wäre über jeden Tip dankbar.
Gruß und schönes WE euch
Marco
Wieso machst du nicht erst ein string.match() und dann dein part ?
var str = 'bla bla bll jdsadha jd djksahdjka sjksdh adjkhaksjd jhkj hsakjdhas class="petname"'; var found = str.match(/class="petname"/g); var found2 = str.match(/class="anderer_petname"/g); if (found) { $('#result').html("gefunden1") }else if (found2) { $('#result').html("gefunden2") } else { $('#result').html("keins von beiden") }
http://jsfiddle.net/j79Mh/1/
:)
Beitrag zuletzt geändert: 7.6.2013 20:53:50 von n0tiert -
Das Problem dabei ist, das ich nach den ersten 3 vorkommen im Quelltext suche.
Heißt mein Code würde durch die Abfrage sehr lang werden.
Also das vollständige Codestück dazu sieht so aus:
var ht_name_all_on1 = content.split('class="petname ">')[1];// ID wird ermittelt HT 1 var ht_name_all_off1 = (ht_name_all_on1 != undefined) ? ht_name_all_on1.split('<')[0].trim() : '';// ID wird ermittelt HT 1 var ht_name_all_on2 = content.split('class="petname ">')[2];// ID wird ermittelt HT 2 var ht_name_all_off2 = (ht_name_all_on2 != undefined) ? ht_name_all_on2.split('<')[0].trim() : '';// ID wird ermittelt HT 2 var ht_name_all_on3 = content.split('class="petname ">')[3];// ID wird ermittelt HT 3 var ht_name_all_off3 = (ht_name_all_on3 != undefined) ? ht_name_all_on3.split('<')[0].trim() : '';// ID wird ermittelt HT 3
Es kann nun bei allen vorkommen das die gesuchte
anders heißt,class
trotzdem möchte ich Sie dann auslesen. In dem Fall ist es die andere Mögliche Klasse
.„class="petname rarepet"
Da dachte ich schnell ne „Oder Klausel“ dazwischen und fertig.
Aber wohl falsch gedacht. Über die Schleifen ist auf jeden Fall schon mal nen Ansatz.
-
aff3m1tw4ff3 schrieb:
Das Problem dabei ist, das ich nach den ersten 3 vorkommen im Quelltext suche.
Heißt mein Code würde durch die Abfrage sehr lang werden.
Also das vollständige Codestück dazu sieht so aus:
var ht_name_all_on1 = content.split('class="petname ">')[1];// ID wird ermittelt HT 1 var ht_name_all_off1 = (ht_name_all_on1 != undefined) ? ht_name_all_on1.split('<')[0].trim() : '';// ID wird ermittelt HT 1 var ht_name_all_on2 = content.split('class="petname ">')[2];// ID wird ermittelt HT 2 var ht_name_all_off2 = (ht_name_all_on2 != undefined) ? ht_name_all_on2.split('<')[0].trim() : '';// ID wird ermittelt HT 2 var ht_name_all_on3 = content.split('class="petname ">')[3];// ID wird ermittelt HT 3 var ht_name_all_off3 = (ht_name_all_on3 != undefined) ? ht_name_all_on3.split('<')[0].trim() : '';// ID wird ermittelt HT 3
Es kann nun bei allen vorkommen das die gesuchte
anders heißt,class
trotzdem möchte ich Sie dann auslesen. In dem Fall ist es die andere Mögliche Klasse
.„class="petname rarepet"
Da dachte ich schnell ne „Oder Klausel“ dazwischen und fertig.
Aber wohl falsch gedacht. Über die Schleifen ist auf jeden Fall schon mal nen Ansatz.
kannst dir ja ein array mit den "match" patten bauen den gegen den string matchen , so haste nicht 1000 if else
und sollte mal ein neuer pattern hinzukommen , fügste den einfach in den array -
n0tiert schrieb:
kannst dir ja ein array mit den "match" patten bauen den gegen den string matchen
Hi,
das klingt schon nach dem was ich suche. Ich muss aber leider mal nachhaken, so ganz verstehe ich es leider nicht. Ich bastel mir jetzt ein array mit meinen beiden „class“ die ich suche.
var splitsearch = new Array(); splitsearch[1] = "rarepet\">"; splitsearch[2] = "class=\"petname \">";
Diese müsste ich nun irgendwie gegen den Source prüfen den ich auslese oder das array direkt in meinem code aufrufen. Da komme ich dann jetzt nicht mehr mit.
So billig wie ich jetzt wieder denke geht’s schon mal nicht:
var ht_id_all_on1 = content.split(‘’+splitsearch+’’)[2];// ID wird ermittelt HT 1 var ht_id_all_off1 = (ht_id_all_on1 != undefined) ? ht_id_all_on1.split('"')[0].trim() : '';// ID wird ermittelt HT 1
Da bräuchte ich noch etwas Hilfe.
Gruß und schönes WE euch….
-
Updated:
arr = ['class="petname 1"> ','class="petname 2">', 'class="petname 3">']; str = '<div id="idx ">dsasdasd sd sad dsad asds dasdas</div></div><div id="id1" class="petname 2">jkhda word2 jdslkajsldk........</div>.'; num = arr.length; for (var i=0;i<num;i++) { found = str.match(arr[i]); if (found) { // ok, wir haben ein match , jetzt dein part...... var ht_id_all_on1 = str.split(arr[i])[1]; // alles hinter <div id="id1" class="petname 2"> ausgeben $('#result').html(ht_id_all_on1); //.......... } }
http://jsfiddle.net/xnxpd/
Beitrag zuletzt geändert: 9.6.2013 10:06:35 von n0tiert -
Hi,
ich danke Dir, hat zwar etwas länger gedauert aber ich habe es damit hinbekommen.
Vielen danke für Deine Hilfe!! -
Hi,
du hast zwar jetzt schon einige Antworten bekommen, aber keine davon ist die simpelste Lösung, den JS kann das schon von alleine.
Man muss dazu nur RegEx statt Strings verwenden, dann gehts.
Um das zu zeigen nehme ich mal dein Beispiel:
// so war dein Code ursrpünglich var ht_name_all_on1 = content.split('class="petname ">')[1]; var ht_name_all_off1 = !!ht_name_all_on1 ? ht_name_all_on1.split('<')[0].trim() : ''; // sowas in der Art wolltest du haben var ht_name_all_on1 = content.split('class="petname ">' || 'class="anderer_petname ">')[1]; var ht_name_all_off1 = !!ht_name_all_on1 ? ht_name_all_on1.split('<')[0].trim() : ''; // und so sieht das aus, wenn du RegEx benutzt var ht_name_all_on1 = content.split(/class="petname ">|class="anderer_petname ">/)[1]; var ht_name_all_off1 = !!ht_name_all_on1 ? ht_name_all_on1.split('<')[0].trim() : '';
Wie man sieht ist das fast identisch zu deinem Entwurf, allerdings werden die Möglichkeiten durch eine einfache Pipe (|) per Oder verknüpft und es müssen alle Zeichen, die in RegEx besondere Bedeutung haben maskiert werden, allerdings ist das bei deinen Strings nirgends der Fall.
Übrigens, die Schreibweise !!VARIABLE erzeugt bei der Abfrage das selbe Ergebnis wie VARIABLE!=undefined ist jedoch kürzer.
Mit freundlichen Grüßen -
nemoinho schrieb:
// und so sieht das aus, wenn du RegEx benutzt var ht_name_all_on1 = content.split(/class="petname ">|class="anderer_petname ">/)[1]; var ht_name_all_off1 = !!ht_name_all_on1 ? ht_name_all_on1.split('<')[0].trim() : '';
So hatte ich mir das vorgestellt, schöne kurze Abfrage. Ich danke für den Tip, so habe ich es jetzt übernommen.
nemoinho schrieb:
Übrigens, die Schreibweise !!VARIABLE erzeugt bei der Abfrage das selbe Ergebnis wie VARIABLE!=undefined ist jedoch kürzer.
Das hab ich auch gleich übernommen, wieder was dazu gelernt. Alles was die Schreibweise abkürzt ist Willkommen.
Ich danke Euch für die Hilfe.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage