webForumDet fria alternativet

Hitta i sträng

5 svar · 309 visningar · startad av Web-Tor

Web-TorMedlem sedan nov. 200013 890 inlägg
#1

Om ett input-fält heter 1_car kan jag då hitta detta genom att kolla om andra värdet är car?

Idag använder jag:

type=input.name.split('_')[1];
inp=document.getElementsByTagName('input');

for(i=0; i < inp.length; i++){
	 if(inp[i].name.indexOf(type)==2)
		alert("Träff");
}

Det funkar bra enda tills första värdet (1) blir tvåsiffrigt. :l

Web-TorMedlem sedan nov. 200013 890 inlägg
#2

Jag är rätt kass på regExp men det här ser ut att funka:

type=input.name.split('_')[1];
inp=document.getElementsByTagName('input');

for(i=0; i < inp.length; i++){
	 [b]if(inp[i].name.match("_"+type))[/b]
		alert("Träff");
}

Lämna gärna feedback på om det är bra eller om det finns något bättre sätt. :)

Peter SMedlem sedan dec. 20025 483 inlägg
#3

Annars fungerar ju indexOf() också. Den returnerar -1 om den ej hittar delsträngen, annars dess position i strängen. Så:

...
if (inp[i].name.indexOf(type) != 0)
    // ...
...

:)

Web-TorMedlem sedan nov. 200013 890 inlägg
#4

Fast det funkar inte om fältet heter 1_car_1 och jag vill hitta 1 på tredje positionen (den ettan som ligger sist alltså).

Peter SMedlem sedan dec. 20025 483 inlägg
#5

Enligt din förra kod är du intresserad av att veta om ett visst name-attribut innehåller "_car" (alert("Träff")), det jag då menade är att det går att åstadkomma med indexOf():

...
if (inp[i].name.indexOf("_"+type) != 0)
    // ...
...

Eller vill du ha ut ett värde från en eller ett par positioner i strängen, t.ex. allt utom '_' och 'car'?

:)

Web-TorMedlem sedan nov. 200013 890 inlägg
#6

Jo, jag förstår hur du menar. Mitt exempel är kraftigt förenklat så på min riktiga kod kan jag nog inte använda indexOf. Nu har jag i alla fall fått match att funka ganska bra.

Tack! :)

136 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)