webForumDet fria alternativet

Plocka ut siffror före och efter "|"?

13 svar · 262 visningar · startad av Jesper T

Jesper TMedlem sedan nov. 20017 144 inlägg
#1

link1[3] = new boxData("Virknålar",10|5.3);

Jag skulle vilja plocka ut värdet före, respektive efter "|".
Hur gör man det?

colioneMedlem sedan juni 20014 421 inlägg
#2
firstSplit=link1[3].split(",")
finalSplit=firstSplit[1].split("|")
alert(finalSplit[0])
alert(finalSplit[1])

Jag splittar först strängen efter , för att få "Virknålar" och "10|5.3" i en egen array. Därefter splitar jag den delen av arrayen som 10|5.3 ligger i, dessa läggs i en ny array vid namn finalSplit.

Jesper TMedlem sedan nov. 20017 144 inlägg
#3

Tack, men denna rad kan se ut på flera sätt:
ex.

link1[3] = new boxData("Virknålar",10|5.3);
link2[1] = new boxData("Virknålar",10|5.3);
link0[2] = new boxData("Virknålar",10|5.3);

Skapar det problem då?

Jesper TMedlem sedan nov. 20017 144 inlägg
#4

Iofs så hamnar "10|5.3" i ett value i en select så att det kanske inte spelar någon roll?!

colioneMedlem sedan juni 20014 421 inlägg
#5

Nej inte så länge du har fler kommatecken i de olika värdena...Sen kan du ändra såväl indexet som namnet på arrayen (linkx[i]) hur du vill. sålänge som du har ett kommatecken innan 10|5.3 men du kan ha hur många kommatecken du vill efter...

Jesper TMedlem sedan nov. 20017 144 inlägg
#6

Det ser ut så här:

 <form name="form1" method="post" action="">
<input type="hidden" name="hiddenField" value="[b]10|5.3[/b]">
</form>

Och där ifrån skall värdet splittas.

colioneMedlem sedan juni 20014 421 inlägg
#7

Du kan lägga det i en funktion om du vill:

function splitme(stringToSplit, firstSeparator, secondSeparator){
firstSplit=stringToSplit.split(firstSeparator)
finalSplit=firstSplit[1].split(secondSeparator)
alert(finalSplit[0])
alert(finalSplit[1])
//return finalSplit
}

Där stringToSplit, firstSeparator, secondSeparator är variablar som du skickar med när du anropar funktionen.

Men när du vill ta hand om värdena då får du skicka iväg arrayen med en return till den funktion som du anropade ifrån med return. Därefter så får du behandla värdena där.

colioneMedlem sedan juni 20014 421 inlägg
#8
document.form1.hiddenField.value.split("|")
Jesper TMedlem sedan nov. 20017 144 inlägg
#9

Har ändrat detta 100 gånger nu, vad är fel?
Vill ha värdet till höger om |

<form name="form1">
<input type="text" name="hiddenField" value="10|5.4">
<script>
document.write(document.form1.hiddenField.value[1].split("|"))
</script>
</form>
@ndersMedlem sedan juni 200032 969 inlägg
#10
<form name="form1">
<input type="text" name="hiddenField" value="10|5.4">
<script>
document.write(document.form1.hiddenField.value.split("|")[1]);
</script>
</form>

Mvh,

Jesper TMedlem sedan nov. 20017 144 inlägg
#11

Nu så strår det "NaN" i fälten.
Nu/funkar ej:

 var splittatVarde = (document.TrainForm.MET.value.split("|")[1]);
var calBurnt = Math.round(splittatVarde * document.TrainForm.Vikt.value * duration);
<input type="hidden" name="MET" value="10|5.6">

Förut/funkar:

 var calBurnt = Math.round(document.TrainForm.MET.value * document.TrainForm.Vikt.value * duration); 
<input type="hidden" name="MET" value="5.6">
Jesper TMedlem sedan nov. 20017 144 inlägg
#12

Vad kan det vara för fel?

Jesper TMedlem sedan nov. 20017 144 inlägg
#13

Är det någon som har en idé?

colioneMedlem sedan juni 20014 421 inlägg
#14

När du splitade görs den om till en sträng. Prova att göra såhär:

var splittatVarde = (document.TrainForm.MET.value.split("|")[1]);
var calBurnt = Math.round([b]eval(splittatVarde)[/b] * document.TrainForm.Vikt.value * duration);
<input type="hidden" name="MET" value="10|5.6">
138 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)