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 :

science-fiction? ==> ajout de propriétés à String


Sujet :

JavaScript

  1. #1
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut science-fiction? ==> ajout de propriétés à String
    Salut les aminches,

    bon, j'essaie en vain de savoir si oui ou zut, on peut enrichir les propriétés d'un objet natif, au même titre qu'on peut lui prototyper des méthodes;

    soit la bidouille suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <script type="text/javascript">
     
    function obj(str){
    	for(i=97;i!=123;i++){
    		this[String.fromCharCode(i)]=(" "+str+" ").split(new RegExp(String.fromCharCode(i),"i")).length - 1
    	}
    }
     
    var chaine=new obj("kjsfdget5443ùp^$^pkgd sd ART IOU Ou4gf*ù^'");
     
    </script>
    l'intérêt est de pouvoir faire: "chaine.a", "chaine.b", "chaine.c", etc. pour avoir le nombre de "a", de "b", de"c"...;

    c'est rigolo comme tout mais j'aimerais bien me passer d'un constructeur et faire que String admette de telles propriétés;

  2. #2
    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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    faudrait faire un prototype par caractère...
    Mais on peut faire un prototype Count

    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
    String.prototype.Count=function (lettre){
     mod=(arguments.length != 2)?'':'i';
     reg=new RegExp(lettre,mod)
    tabtemp= this.split(reg)
    return (tabtemp.length-1)
    }
    var chaine="kjsfdgaet5443ùAp^$^pkgd sd ARTk IOU Ou4gf*ù^'";
     
    String.prototype.Count=function (lettre){
     mod=(arguments.length != 2)?'':'i';
     reg=new RegExp(lettre,mod)
    tabtemp= this.split(reg)
    return (tabtemp.length-1)
    }
    var chaine="kjsfdgaet5443ùAp^$^pkgd sd ARTk IOU Ou4gf*ù^'";
     
    alert(chaine.Count('a'))
    alert(chaine.Count('A'))
    alert(chaine.Count('A','i'))
    si on rajoute un argument il devient case insensitive
    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 !

  3. #3
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    faudrait faire un prototype par caractère...
    en fait, pas vraiment: le prototype renvoie forcément une méthode et c'est ce que je voudrais squizzer, sinon autant faire une fonction classique;

    bref, faire comme avec mon objet "obj" mais sur une String;

    j'ai essayé 50 syntaxes mais le pbm demeure;

  4. #4
    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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    Ha tu veux dire récupérer le nom du prototype ... ?
    mhhh
    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 !

Discussions similaires

  1. ajouter une propriété name
    Par butch dans le forum Delphi
    Réponses: 6
    Dernier message: 16/05/2006, 17h18
  2. Ajout d'un string dans un string
    Par WeDgEMasTeR dans le forum Langage
    Réponses: 2
    Dernier message: 01/05/2006, 15h09
  3. [JList]Ajout de composant String/Objet
    Par HNT dans le forum Composants
    Réponses: 7
    Dernier message: 19/01/2006, 12h24
  4. [D6] PB ajout de propriétés font dans un composant
    Par Pill_S dans le forum Composants VCL
    Réponses: 11
    Dernier message: 25/10/2005, 20h16
  5. [active X] ajouter une propriété
    Par Blo0d4x3 dans le forum MFC
    Réponses: 4
    Dernier message: 22/09/2004, 09h47

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