IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Discussion :

[SRC] toUpperCase / Majuscules sans accents


Sujet :

Contribuez

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 101
    Points : 123
    Points
    123
    Par défaut [SRC] toUpperCase / Majuscules sans accents
    Ce script permet de traiter une chaîne de caractères pour la passer tout en majuscule, sans accentuation et les mots séparés par un espace unique.

    Ce script supprime tous les caractères spéciaux autres que les accents et le cédille.

    Le - entre 2 mots est remplacé par un espace.

    Il est très aisé de gérer plus de caratères, il suffit de mettre le caratère a traiter dans la var min et de mettre la traduction voulue dans la var maj au avec le même index. C'est un peu bidouille mais ça marche bien

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    function majSansAccent(id)
          {
            var min = "aàâäbcçdeéèêëfghiîïjklmnoôöpqrstuùûvwxyz- ";        
            var maj = "AAAABCCDEEEEEFGHIIIJKLMNOOOPQRSTUUUVWXYZ  ";
            var entree = document.getElementById(id).value;
            var sortie = "";
            var tableau = new Array;
            var format = "";
            var reg=new RegExp("[ ]+", "g");
            var car="";
            entree = entree.toLowerCase();
     
            for (var i = 0 ; i < entree.length ; i++)
            {
              car = entree.substr(i, 1);
              if(min.indexOf(car)!= -1){
               sortie += maj.substr(min.indexOf(car), 1);
              }
            }    
            tableau=sortie.split(reg);
     
            for (var j=0; j<=tableau.length-1; j++) {
                if(tableau[j]!=" " && tableau[j].length>0){
                  format += tableau[j]+" ";
                }
            }
            if(format.charAt(0)!=" "){
              document.getElementById(id).value=format.substring(0,format.length-1);
            } else {
              document.getElementById(id).value=format.substring(1,format.length-2);
            }
     
          }

    Voilà

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Bonsoir.

    Personnellement, je trouve que les accents sont porteurs de sens, j'aime et j'utilise les majuscules accentuées.

    Ce n'est évidemment pas seulement pour vous dire cela que j'écris, votre programme n'est pas tout à fait fonctionnel, il y a une grande perte d'information dans le résultat.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
     
    <!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" xml:lang="fr">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta name="Author" content="Daniel Hagnoul" />
        <title>Page type</title>
        <style type="text/css">
            body {
                background-color:#696969;
                color:#000000;
                font-family:Arial, Helvetica, sans-serif;
                font-size:medium;
                font-style:normal;
                font-weight:normal;
                line-height:normal;
                letter-spacing:normal;
            }
            h1,h2,h3,h4,h5 {
                font-family:"Times New Roman", Times, serif;
            }
            div,p,h1,h2,h3,h4,h5,h6,ul,ol,dl,form,table,img {
                margin:0px;
                padding:0px;
            }
            p {
                padding:6px;
            }
            ul,ol,dl {
                list-style:none;
                padding-left:6px;
                padding-top:6px;
            }
            li {
                padding-bottom:6px;
            }
            div#conteneur {
                width:95%;
                margin:12px auto;
                padding:6px;
                background-color:#FFFFFF;
                color:#000000;
                border:1px solid red;
                font-size:0.8em;
            }
            div#affiche {
                margin:12px;
                border:1px solid #999999;
            }
        </style>
        <script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.js"></script>
        <script type="text/javascript">
            function majSansAccent(id){
                var min = "aàâäbcçdeéèêëfghiîïjklmnoôöpqrstuùûvwxyz- ";        
                var maj = "AAAABCCDEEEEEFGHIIIJKLMNOOOPQRSTUUUVWXYZ  ";
                var entree = document.getElementById(id).value;
                var sortie = "";
                var tableau = new Array;
                var format = "";
                var reg = new RegExp("[ ]+", "g");
                var car = "";
                entree = entree.toLowerCase();
     
                for (var i = 0 ; i < entree.length ; i++){
                    car = entree.substr(i, 1);
     
                    if (min.indexOf(car)!= -1){
                        sortie += maj.substr(min.indexOf(car), 1);
                    }
                }
     
                tableau = sortie.split(reg);
     
                for (var j=0; j<=tableau.length-1; j++) {
                    if ((tableau[j] != " ") && (tableau[j].length > 0)){
                        format += tableau[j] + " ";
                    }
                }
     
                if (format.charAt(0) != " "){
                    document.getElementById(id).value=format.substring(0, format.length-1);
                } else {
                    document.getElementById(id).value=format.substring(1, format.length-2);
                }
            }
     
            $(document).ready(function(){
                majSansAccent("origine");
     
                $("#affiche").append("<p>" + $("#conteneur p:first").text().toUpperCase() + "</p>");
            });
        </script>
    </head>
    <body>
        <div id="conteneur" style="line-height:1.5em;">
     
            <p style="line-height:1.5em;">
                Pour : a (à â) [æ] b c (ç) d e (é è ê ë) f g h i (î ï) j k l m n o (ô) [œ] p q r s t u (ù û ü) v w x y (ÿ) z. En français, « l'accent a pleine valeur orthographique »[35]. L'Académie française recommande donc l'usage d'accent ou tréma sur une majuscule, tout comme l'utilisation de la cédille. Ainsi les publications de qualité écrivent les majuscules et les capitales avec les accents et autres diacritiques, au même titre que les minuscules. En effet, les signes diacritiques ont un rôle important dans les langues qui les utilisent. Cependant, dans une grande partie du monde francophone (Suisse romande notamment[36], mais pas au Québec[37]), seuls les minuscules et les mots en toutes capitales sont accentués dans les textes courants[38]. Les signes diacritiques ne sont systématiquement reproduits que dans les publications soignées : dictionnaires[39], encyclopédies[40], Collection de la Pléiade, ... On trouve donc écrit Etat (sic) dans les publications courantes et État dans les publications soignées.
            </p>
     
            <p>
                majSansAccent("origine") donne le résultat ci-dessous :
            </p>
     
            <textarea name="textarea" id="origine" style="width:900px; height:200px; line-height:1.7em;">"Pour : a (à â) [æ] b c (ç) d e (é è ê ë) f g h i (î ï) j k l m n o (ô) [œ] p q r s t u (ù û ü) v w x y (ÿ) z. En français, « l'accent a pleine valeur orthographique »[35]. L'Académie française recommande donc l'usage d'accent ou tréma sur une majuscule, tout comme l'utilisation de la cédille. Ainsi les publications de qualité écrivent les majuscules et les capitales avec les accents et autres diacritiques, au même titre que les minuscules. En effet, les signes diacritiques ont un rôle important dans les langues qui les utilisent. Cependant, dans une grande partie du monde francophone (Suisse romande notamment[36], mais pas au Québec[37]), seuls les minuscules et les mots en toutes capitales sont accentués dans les textes courants[38]. Les signes diacritiques ne sont systématiquement reproduits que dans les publications soignées : dictionnaires[39], encyclopédies[40], Collection de la Pléiade, ... On trouve donc écrit Etat (sic) dans les publications courantes et État dans les publications soignées."</textarea>
     
            <div id="affiche" style="line-height:1.7em;">
            <p>
                $("#conteneur p:first").text().toUpperCase() donne le résultat ci-dessous :
            </p>
            </div>
        </div>
    </body>
    </html>

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 101
    Points : 123
    Points
    123
    Par défaut
    Certes je ne dis pas le contraire ils sont peut être porteurs de sens et je les utilise dès que je peut, j'ai fait ce script pour un module de recherche spécifique a une application. Ce script devait montrer à l'utilisateur exactement la recherche qui sera effectué justement pour lui montrer cette perte d'information

    Par contre je ne vois pas pourquoi des 'é' se transforment en 'A' dans votre exemple

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Bonjour.

    Tant mieux s'il répond a vos besoins personnels !

    Ce n'est pas mon programme, c'est toUpperCase().

    J'utilise F3, je ne vois pas quel « é » s'est transformé en « A ».

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 101
    Points : 123
    Points
    123
    Par défaut
    quand j'utilise votre code ça marche moins bien chez moi les lettre accentuées se transforment en "A" bizarre

  6. #6
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    C'est un problème d'encodage de la page ca.

Discussions similaires

  1. Conversion de minuscule accentuée en majuscule sans accent
    Par polothentik dans le forum Langage
    Réponses: 9
    Dernier message: 31/10/2017, 09h35
  2. [XL-2010] Tout en majuscule et sans accents dans sub vba
    Par moteuv12 dans le forum Excel
    Réponses: 2
    Dernier message: 21/01/2015, 19h52
  3. [AC-2003] majuscules sans accents
    Par novice06 dans le forum VBA Access
    Réponses: 5
    Dernier message: 01/05/2010, 08h04
  4. Minuscule en majuscule sans accents
    Par Misha dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 26/01/2010, 15h47
  5. Majuscule sans accent
    Par Monjarno dans le forum Excel
    Réponses: 2
    Dernier message: 23/08/2007, 10h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo