Avatar billede skildpadden Nybegynder
04. august 2005 - 12:05 Der er 7 kommentarer og
1 løsning

Bogstav efter mellemrum skal være stort

Jeg er ved at lave en form som brugere skal udfylde med navn.

Jeg vil gerne have et script som tjekker om bogstavet efter mellemrum er stort, og hvis ikke ændrer det til et stort bogstav.

Hvis brugeren f.eks. skriver "niels nielsen", skal scriptet rette dette til "Niels Nielsen".

Er der en venlig sjæl herinde som kan være behjælpelig her?
Avatar billede Slettet bruger
04. august 2005 - 12:10 #1
<?php

  function FormatName($name=NULL) {
     
      /* Formats a first or last name, and returns the formatted
      version */
     
      if (empty($name))
          return false;
         
      // Initially set the string to lower, to work on it
      $name = strtolower($name);
         
      // Run through and uppercase any multi-barrelled names

      $names_array = explode('-',$name);

      for ($i = 0; $i < count($names_array); $i++) {
         
          // "McDonald", "O'Conner"..
          if (strncmp($names_array[$i],'mc',2) == 0 || ereg('^[oO]\'[a-zA-Z]',$names_array[$i])) {
          $names_array[$i][2] = strtoupper($names_array[$i][2]);
 
          }
         
          // Always set the first letter to uppercase, no matter what
          $names_array[$i] = ucfirst($names_array[$i]);
         
      }

      // Piece the names back together
      $name = implode('-',$names_array);

      // Return upper-casing on all missed (but required) elements of the $name var
      return ucwords($name);
     
  }
?>

http://dk2.php.net/manual/da/function.ucfirst.php
Avatar billede roenving Novice
04. august 2005 - 12:14 #2
Vil du have den til at ændre det med det samme, når brugeren er færdig ?-)

-- og hvad med den slags navne, hvor et af ordene er udelukkende med små bogstaver: van Halen, Ingrid af Fjördur ?o]
Avatar billede skildpadden Nybegynder
04. august 2005 - 14:29 #3
gandso: er dette et php-script? - det skal være javascript, da mit web hotel ikke understøtter php.

roenving: ja, den skal gerne ændre det efterhånden som brugeren indtaster i felterne (via OnKeyUp måske?). Jeg har godt tænkt på det med "van" og "von" osv., men måske man kan lave så man kan udelukke bestemte navne fra at blive ændret af scriptet?
Avatar billede roenving Novice
04. august 2005 - 14:44 #4
Tjah, det kan man godt, men det er rasende irriterende (altså udelukke bestemte tegn-sekvenser !-)

-- og man kan også sagtens gøre det onkeyup, men det vil nok være lidt forvirrende for brugeren ...
Avatar billede roenving Novice
04. august 2005 - 14:45 #5
Og en måde at gøre det på, kunne være at:

<script language="javascript" type="text/javascript">
function makeFirstUpper(elm){
  var txt = elm.value,temp;
  txt = txt.split(" ");
  for(i=0;txt.length>i;i++){
    txt[i] = txt[i].split("-");
    for(j=0;txt[i].length>j;j++){
      temp = txt[i][j].split("");
      if(temp.length>0)
        temp[0] = temp[0].toUpperCase();
      txt[i][j] = temp.join("");
    }
    txt[i] = txt[i].join("-");
  }
  elm.value = txt.join(" ");
}
</script>

-- som så kaldes fra onchange eller onblur (eller evt. onkeyup !-) med:

onchange="makeFirstUpper(this);"
Avatar billede skildpadden Nybegynder
04. august 2005 - 15:36 #6
Det fungerer perfekt.

Tak for hjælpen!

Laver du lige et svar så du kan få point...
Avatar billede roenving Novice
04. august 2005 - 15:37 #7
Velbekomme '-)
Avatar billede roenving Novice
04. august 2005 - 15:42 #8
-- og tak for point ;~}
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