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

JavaScript Discussion :

Nombre de caractères


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2002
    Messages
    329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2002
    Messages : 329
    Par défaut Nombre de caractères
    Bonjour,

    Existe-t-il une fonction permettant d'avoir le nombre de fois qu'un caractère bien identifié est présent dans une phrase?

    Par exemple, dans la phrase : La vie est un fleuve tranquille

    Il y a 4 fois la lettre L

    Merci

  2. #2
    Inactif
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 117
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function getNumChars(str, char) {
       return str.match(new RegExp(char,'ig')).length;
    }

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    oui ou un poil moins gourmands:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function getNumChars(str, char) {
       return str.split(char).length -1 ;
    }
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Inactif
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 117
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    oui ou un poil moins gourmands:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function getNumChars(str, char) {
       return str.split(char).length -1 ;
    }
    tu ne gère pas la casse
    donc si je mets un A majuscule et que dans mon texte je n'ai que des "a", ta fonction me retournera 0

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    split accepte une expression régulière en argument, donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function getNumChars(str, char) {
       return str.split(char).length -1 ;
    }
    alert(getNumChars('Toto', /t/i))
    affiche bien 2
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    c'était pas spécifié mais ça se règle rapidement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return str.toLowerCase().split(char.toLowerCase()).length -1 ;}
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Inactif
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 117
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    c'était pas spécifié mais ça se règle rapidement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return str.toLowerCase().split(char.toLowerCase()).length -1 ;}
    exactement

    pendant ce temps, j'ai profité pour faire des tests avec ce code :
    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
     
    function getNumCharsMatchRegExp(str, chr)
    			{
    			 	return str.match(new RegExp(chr,'ig')).length;
    			}
     
    			function getNumCharsMatchLowerCase(str, chr)
    			{
    			 	return str.toLowerCase().match(new RegExp(chr.toLowerCase(),'g')).length;
    			}
     
    			function getNumCharsSplitRegExp(str, chr)
    			{
    			   return str.split(new RegExp(chr,'ig')).length - 1;
    			}
     
    			function getNumCharsSplitLowerCase(str, chr)
    			{
    			   return str.toLowerCase().split(chr.toLowerCase()).length - 1;
    			}
     
    			window.onload = function() {
    				console.time('createarray');
    				var str = new Array(1000000).join('i');
    				console.timeEnd('createarray');				
     
    				console.time('getNumCharsMatchRegExp');
    				console.log(getNumCharsMatchRegExp(str, 'i'));
    				console.timeEnd('getNumCharsMatchRegExp');
     
    				console.time('getNumCharsMatchLowerCase');
    				console.log(getNumCharsMatchLowerCase(str, 'i'));
    				console.timeEnd('getNumCharsMatchLowerCase');
     
    				console.time('getNumCharsSplitRegExp');
    				console.log(getNumCharsSplitRegExp(str, 'i'));
    				console.timeEnd('getNumCharsSplitRegExp');
     
    				console.time('getNumCharsSplitLowerCase');
    				console.log(getNumCharsSplitLowerCase(str, 'i'));
    				console.timeEnd('getNumCharsSplitLowerCase');
    			}
    résultats :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    createarray: 145ms
     
    999999
    getNumCharsMatchRegExp: 320ms
     
    999999
    getNumCharsMatchLowerCase: 354ms
     
    999999
    getNumCharsSplitRegExp: 137ms
     
    999999
    getNumCharsSplitLowerCase: 60ms

  8. #8
    Inactif
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 117
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    oui ou un poil moins gourmands:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function getNumChars(str, char) {
       return str.split(char).length -1 ;
    }
    tu ne gère pas la casse
    donc si je mets un A majuscule et que dans mon texte je n'ai que des "a", ta fonction me retournera 0

Discussions similaires

  1. [JTextArea] limiter le nombre de caractères
    Par spoutyoyo dans le forum Composants
    Réponses: 5
    Dernier message: 14/09/2007, 15h45
  2. Réponses: 7
    Dernier message: 16/11/2004, 15h45
  3. Réponses: 2
    Dernier message: 21/09/2004, 19h01
  4. [JTextField] Limiter le nombre de caractères
    Par thomas_strass dans le forum Composants
    Réponses: 2
    Dernier message: 08/09/2004, 14h06
  5. nombre de caractère retourné...
    Par sonialem2000 dans le forum Requêtes
    Réponses: 2
    Dernier message: 02/08/2004, 04h06

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