Passage d'un texte en majuscule sans utiliser la méthode "touppercase"

Contenu du snippet

La méthode "toUpperCase" focntionne très mal avec la langue française : elle transforme les caractères minuscules accentués en majuscules accentuées. Or, en Français, les majuscules ne comportent pas d'accent.

Je préfère donc utiliser le code ci-dessous qui est certainement plus long à l'éxécution, mais éminemment plus conforme au language.

Source / Exemple :


<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title></title>
    <script type="text/javascript">
      function majuscule(obj)
      {
        var minus = "aàâäbcçdeéèêëfghiîïjklmnoôöpqrstuùûvwxyz"        
        var majus = "AAAABCCDEEEEEFGHIIIJKLMNOOOPQRSTUUUVWXYZ"
        var entree = obj.texte.value;
        var sortie = "";
        for (var i = 0 ; i < entree.length ; i++)
        {
          var car = entree.substr(i, 1);
          sortie += (minus.indexOf(car) != -1) ? majus.substr(minus.indexOf(car), 1) : car;
        }
        obj.texte.value = sortie;
      }
    </script>
  </head>
  <body>
    <form name="formulaire" id="formulaire" method="post" action="">
      <table>
        <tr>
          <td>
            <input type="text" name="texte" id="texte" value="Jérôme" />
          </td>
        </tr>
        <tr>
          <td>
            <input type="button" value="Tester" onclick="majuscule(this.form)" />
          </td>
        </tr>
      </table>
    </form>
  </body>
</html>

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.