Avatar billede axkris Nybegynder
12. april 2003 - 22:40 Der er 28 kommentarer og
1 løsning

Check efter store bogstaver

Hej

Jeg har brug for et script, som smider en alert, hvis der er mere end 5 store bogstaver i en streng.
Avatar billede schaefner Juniormester
12. april 2003 - 22:46 #1
<html>
<head>
<script type="text/javascript">
function tjekTegn() {
    if (document.frm.tekst.value.length > 5) {
        alert('Der må max være 5 tegn i feltet');   
    }
}
</script>
</head>

<body>

<form action="" name="frm">
<input type="text" name="tekst"><br>
<input type="submit" name="send" value="Send" onclick="tjekTegn()">
</form>

</body>
</html>

/Jesper Sørensen
Avatar billede axkris Nybegynder
12. april 2003 - 22:48 #2
Læg lige mærke til, at jeg skrev: "...hvis der er mere end 5 STORE bogstaver i en streng." :-)
Avatar billede schaefner Juniormester
12. april 2003 - 22:49 #3
jep, jeg er blind. Ved det godt ;o)
Avatar billede olebole Juniormester
12. april 2003 - 23:04 #4
<ole>

axkris >> Hvordan skal det bruges - og hvordan kan strengen være formateret?

/mvh
</bole>
Avatar billede axkris Nybegynder
12. april 2003 - 23:06 #5
Sådan her:
Streng: "Besøg VERDENS BEDSTE hjemmeside"

Alert hvis der er mere end 5 store bogstaver, hvilket det er i dette tilfælde.
Avatar billede olebole Juniormester
12. april 2003 - 23:20 #6
<script type="text/JavaScript">
var prohib = "ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ";
var str = "Besøg VERDENS BEDSTE hjemmeside";
var inx = 0;
function checkStr(s) {
    for (i=0; i<s.length; i++) {
        if (prohib.indexOf(s.charAt(i))!=-1) inx++;
    }
    if (inx>5) alert("For mange store bogstaver");
}

checkStr(str);
</script>
Avatar billede Slettet bruger
13. april 2003 - 17:06 #7
Hm, lidt nemmere, skulle jeg mene:

<script type="text/JavaScript">
var str = "Besøg VERDENS BEDSTE hjemmeside";

function checkStr(s) {
  t = 0;
  for (i = 0; i < s.length; i++)
    if (s.charAt(i).toUpperCase() == s.charAt(i))
      t++;
  if (t > 5)
    alert("For mange store bogstaver.");
}

checkStr(str);
</script>
Avatar billede olebole Juniormester
13. april 2003 - 17:17 #8
Dooohhhhhhh ..... ikke bare nemmere og mere 'sexy' ... også mere korrekt, da speciel-tegn som Æ, Ø og Å ikke må bruges i JavaScript  ;o)
Avatar billede axkris Nybegynder
14. april 2003 - 15:41 #9
Det er jo smukt drenge... tryk svar :-)
Avatar billede Slettet bruger
14. april 2003 - 15:43 #10
Skal vi dele, olebole?
Avatar billede olebole Juniormester
14. april 2003 - 15:44 #11
Lad phoenixv nappe dem ... han tænkte sig lidt mere om  ;o)
/mvh
Avatar billede olebole Juniormester
14. april 2003 - 15:45 #12
Ooops ... vi krydsede vist beskeder. Nej, jeg synes, de bør tilfalde dig  ;o)
Avatar billede axkris Nybegynder
14. april 2003 - 21:05 #13
Hov, der er en lille fejl i scriptet. Ved nedenstående alerter den 2, selvom der ingen store bogstaver er. (Den er tæller altid 2 for meget)

<script>
    s = "ingen store bogstaver"
    t = 0;
      for (i = 0; i < s.length; i++)
    if (s.charAt(i).toUpperCase() == s.charAt(i))
        t++;
    alert(t);
</script>
Avatar billede axkris Nybegynder
14. april 2003 - 21:06 #14
Den er tæller = Den tæller
Avatar billede olebole Juniormester
14. april 2003 - 21:16 #15
Ja, det er rigtigt ... den tæller alle tegn som værende store bogstaver - hvis det ikke lige er et lille bogstav. I dit eksempel er det mellemrummene. Tal, underscores, bindestreger, punktummer o.m.a. vil gøre det samme.
Det bringer os vist alligevel tilbage til min version  :)
/mvh
Avatar billede olebole Juniormester
14. april 2003 - 21:18 #16
Brug min ... og hvad angår points, så udligner det sig sikkert i det lange løb  ;o)
Avatar billede axkris Nybegynder
14. april 2003 - 21:30 #17
Jeg løste det ved at skrive:

    s = form.titel.value;
    t = 0;
      for (i = 0; i < s.length; i++)
    if (s.charAt(i).toUpperCase() == s.charAt(i))
        t++;
      if (t > 7) {
          alert("Det er ikke muligt at anvende mere end 5 store bogstaver i titlen.");
          return false;
      }

Det er godt nok en skod-løsning ... if (t > 7) ... men det virker.

For resten ... jeg ved at man laver et "og" ved at skrive "&&", men hvordan laver man et "eller"?
Avatar billede olebole Juniormester
14. april 2003 - 21:40 #18
Nej, det løser ikke dit problem ... hvad nu hvis der skrives andre tegn - eller flere mellemrum? Så går det galt.
"Besøg VERdens Bedste hjemmeside" vil give 8 'store bogstaver'.

&& = og
|| = eller
Avatar billede axkris Nybegynder
14. april 2003 - 21:44 #19
Nu sprøger jeg lige dumt... men er det fordi, at den regner et mellemrum for et stort tegn? Og i så fald kan man så ikke bare sortere mellemrum fra?
Avatar billede olebole Juniormester
14. april 2003 - 21:55 #20
Prøv nu at læse, hvad jeg skriver (14/04-2003 21:16:39). Jeg er ikke i stand til at forklare det meget tydeligere  :)
Avatar billede Slettet bruger
15. april 2003 - 09:41 #21
Så lad os da bruge noget regexp:

function checkStr(s) {
  t = 0;
  for (i = 0; i < s.length; i++)
    if (s.charAt(i).match(/[A-ZÆØÅ]/))
      t++;
  if (t > 5)
    alert("For mange store bogstaver.");
}
Avatar billede Slettet bruger
15. april 2003 - 09:41 #22
Det er da nemt!?
Avatar billede olebole Juniormester
15. april 2003 - 16:17 #23
Men uforhholdsmæssigt tungt. Derfor valgte jeg det fra, som min allerførste indskydelse i dette spm.
Det er aldrig fikst at bruge regExp i løkker. RegExp er temmelig tungt i alle sprog.
/mvh
Avatar billede olebole Juniormester
15. april 2003 - 16:19 #24
Udover, det i JavaScript burde hedde:
  if (s.charAt(i).match(/[A-Z\306\330\305]/))  ;o)
Avatar billede Slettet bruger
16. april 2003 - 09:29 #25
OK, hvad siger du så til dette:

function checkStr(s) {
  arr = s.match(/[A-Z\306\330\305]/g);
  if (arr.length > 5)
    alert("For mange store bogstaver.");
}

Du får det ikke nemmere end det! :)
Avatar billede axkris Nybegynder
16. april 2003 - 11:28 #26
Er er jo fantastisk :-)
Avatar billede axkris Nybegynder
16. april 2003 - 11:28 #27
Er = det
Avatar billede olebole Juniormester
16. april 2003 - 12:41 #28
phoenixv >> Har du prøvet at time vores to løsninger?  :)
Avatar billede olebole Juniormester
16. april 2003 - 12:43 #29
Undskyld .... jeg så vist ikke ordentligt efter  ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester