A asp Medlem sedan aug. 2002 733 inlägg Frågan 15 apr. 2004 20:06 #1 <script>
function fnOk() {
var info = document.form1.a.value;
var rader = info.split("\n");
if (rader.length == 10) {
alert('hej');
return false;
}
}
</script>
Jag vill splittra på radbrytning. Om det är 11 rader så...
Jesper T Medlem sedan nov. 2001 7 144 inlägg Trixat lite med hittat script. Funkar dock ej med enterslag. Borde inte vara så svårt att fixa.
<html>
<head>
<script type="text/javascript">
<!--
var total;
function showRowNum(o){
rader=1;
total = o.innerHTML.length;
while(total>o.cols*rader){
rader++;
}
if(rader==10)
alert('Hey!');
};
//-->
</script>
</head>
<body>
<form name="f">
<textarea rows="15" cols="40" onkeyup="showRowNum(this);" onkeydown="showRowNum(this);"></textarea>
</form>
</body>
</html>
Jesper T Medlem sedan nov. 2001 7 144 inlägg A asp Medlem sedan aug. 2002 733 inlägg Hmm.. det scriptet förstod jag inte.. Någon som skulle kunna hjälpa mig med detta script?
Jag vill att textarean innehåller 11 rader. Jag vill att varje rad stämmer överns med detta:
1. Bokstav(Endast en)
2. Bokstav(en eller flera)
3. Sifrra(en eller flera)
4. Siffra (en eller flera)
5. Siffra (en eller flera)
6. Siffra(en eller flera)
7. Siffra (en eller flera)
8. Siffra (en eller flera)
9. Siffra(0-10)
10. Siffra(0-10)
11. Siffra(0-10)
12. Siffra(0-10)
13. Siffra(0-10)
14. Siffra(0-10)
15. Siffra(0-10)
16. Siffra(0-10)
17. Siffra(0-10)
18. Siffra(0-10)
19. Siffra(0-10)
20. Siffra(0-10)
21. Siffra(0-10)
Exempel på rad som fungerar:
M Tuste 8 4263407 54835 21 193 96 6 0 4 4 4 4 0 5 8 6 4 3 6
Jesper T Medlem sedan nov. 2001 7 144 inlägg Låter svårt.
Varför inte elva vanliga fextfält?
A asp Medlem sedan aug. 2002 733 inlägg Därför det tar bara lång tid.
Men är det inte bara att loopa igenom arrayen?
Jesper T Medlem sedan nov. 2001 7 144 inlägg Liten fråga: varför vill du göra så där? *nyfiken*
A asp Medlem sedan aug. 2002 733 inlägg Det är ett spel, som heter ManagerZone. Där har man en spelare som har vissa färdigheter. Jag vill med mitt program räkna ut ett värde som spelaren har, eller rättare sagt startelvan.
P Peter S Medlem sedan dec. 2002 5 483 inlägg <script type="text/javascript">
function f(obj) {
var re = /^[a-zA-ZåäöÅÄÖ]{1}\s[a-zA-ZåäöÅÄÖ]+\s(\d+\s){6}((\d{1}|10)\s){12}(\d{1}|10)$/,
rows = obj.elements['t'].value.split('\n'),
iLen = rows.length;
while (iLen-->0)
if (!re.test(rows[iLen]) && typeof alert("Bad!") == "undefined") return false;
return true;
}
</script>
<form onsubmit="return f(this)">
<textarea name="t" cols="65" rows="5"></textarea>
<input type="submit">
</form>
:)
A asp Medlem sedan aug. 2002 733 inlägg Det fungerar inte?
Det skall gå om man klistrar in detta, men det gör det inte:
M Adelsköld 13 260207 5778 20 182 82 0 0 1 2 0 3 0 0 1 1 1 1 0
H Svanér 14 1020815 16325 24 179 82 3 1 1 1 1 3 0 4 4 0 0 6 0
N Ahlfors 15 322132 5252 23 184 85 0 3 1 2 2 1 0 1 0 2 0 3 0
S Helberg 16 1795810 24209 23 179 80 2 2 2 4 2 3 2 2 6 0 1 7 5
J Målare 17 420335 10771 22 179 83 0 1 4 1 3 1 0 2 0 2 2 4 0
R Åkerberg 18 257705 7497 22 167 64 1 2 2 2 1 1 0 0 1 3 2 2 0
E Bivall 19 442228 11031 26 175 82 0 1 2 2 0 5 2 0 2 1 1 7 0
S Johnsson 20 1593774 37454 25 196 95 6 6 6 2 4 5 2 2 1 1 2 6 6
J Mattsson 21 490392 11847 26 172 68 2 4 1 3 3 4 0 1 1 1 0 6 0
J Kaxe 23 455363 9689 23 173 81 1 2 5 2 1 0 0 1 3 1 2 4 0
O Vase 24 297112 10200 25 162 60 2 1 0 1 0 2 0 0 3 4 0 4 0
P Peter S Medlem sedan dec. 2002 5 483 inlägg Nu då:
<script type="text/javascript">
function f(obj) {
var re = /^[\x41-\x5a\xc0-\xfe]{1}\s[\x41-\x5a\xc0-\xfe]+\s(\d+\s){6}((\d{1}|10)\s){12}(\d{1}|10)\s*$/i,
rows = obj.elements['t'].value.split('\n'),
iLen = rows.length;
while (iLen-->0)
if (!re.test(rows[iLen]) && typeof alert("Bad!") == "undefined") return false;
return true;
}
</script>
<form onsubmit="return f(this)">
<textarea name="t" cols="65" rows="5"></textarea>
<input type="submit">
</form>
:)
dectgap Medlem sedan sep. 2002 1 655 inlägg Peter
Var
if (!re.test(rows[iLen]) && typeof alert("Bad!") == "undefined") return false;
bara ett alternativ till
if (!re.test(rows[iLen])){ alert("Bad"); return false; }
eller finns det någon vits med att kolla om alert är av typen "undefined"? För alert() returnerar väl aldrig något?
P Peter S Medlem sedan dec. 2002 5 483 inlägg Det är bara ett alternativ; för läsbarhetens skull kanske ett sämre sådant. Det är upp till betraktaren ;)
Anledningen till att jag valde att lägga uttrycket i ett booleskt sammanhang är att jag kan! I en konjunkt association (AND) evalueras den andra operanden endast i de fall den första bedömts som sann. Så genom att använda typeof och den binära likhetsoperatorn "==" formar jag ett booleskt uttryck som endast utvärderas då en rad i <textarea>:n inte stämmer överens med regexp:et, vilket åstadkommer önskat resultat (precis som ditt förslag).
:)
A asp Medlem sedan aug. 2002 733 inlägg Detta fungerar:
/^[a-zA-ZåäöÅÄÖ]{1}\s[a-zA-ZåäöÅÄÖ]+\s(\d+\s){6}((\d|10)\s){13}\s$/
Men om jag vill att de två sista mellanslaget kan finnas där eller inte... de behöver liksom inte vara där, men de får...
sedan så fungerar inte é, û och alla dem... måste jag lägga till alla, det blir rätt många...
P Peter S Medlem sedan dec. 2002 5 483 inlägg Testa koden från detta inlägg ;)
:)