webForumDet fria alternativet

Räkna antal rader...

14 svar · 409 visningar · startad av asp

aspMedlem sedan aug. 2002733 inlägg
#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 TMedlem sedan nov. 20017 144 inlägg
#2

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 TMedlem sedan nov. 20017 144 inlägg
#3

Denna kanske är av intresse?
http://www.webforum.nu/showthread.php?s=&postid=832095#post832095

aspMedlem sedan aug. 2002733 inlägg
#4

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 TMedlem sedan nov. 20017 144 inlägg
#5

Låter svårt.
Varför inte elva vanliga fextfält?

aspMedlem sedan aug. 2002733 inlägg
#6

Därför det tar bara lång tid.

Men är det inte bara att loopa igenom arrayen?

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

Liten fråga: varför vill du göra så där? *nyfiken*

aspMedlem sedan aug. 2002733 inlägg
#8

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.

Peter SMedlem sedan dec. 20025 483 inlägg
#9
<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>

:)

aspMedlem sedan aug. 2002733 inlägg
#10

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
Peter SMedlem sedan dec. 20025 483 inlägg
#11

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>

:)

dectgapMedlem sedan sep. 20021 655 inlägg
#12

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?

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

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).

:)

aspMedlem sedan aug. 2002733 inlägg
#14

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...

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

Testa koden från detta inlägg ;)

:)

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