webForumDet fria alternativet

Räkna antal rader...

JavaScript

14 svar · 409 visningar · startad av asp

Medlem sedan aug. 2002733 inlägg
Frågan#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å...

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

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

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

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

Medlem sedan aug. 2002733 inlägg
#6

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

Men är det inte bara att loopa igenom arrayen?

Medlem sedan nov. 20017 144 inlägg
#7

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

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

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

:)

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

:)

Medlem 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?

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

:)

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

Medlem sedan dec. 20025 483 inlägg
#15

Testa koden från detta inlägg ;)

:)

370 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
230 ms — ändringar (db)