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 :

Faire Fontion JS idem a Fontion PHP


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Par défaut Faire Fontion JS idem a Fontion PHP
    Bonjour,

    Je cherche une bonne Ame qui puisse transcrire une Fonction PHP
    en une Fonction JavaScript.

    La fonction PHP :
    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
     
    <?php
    $chaine="123679101314";
    $taille=1;//taille du nombre en cours
    $nombre=0;//nombre en cours
    $total=0;//nombre total trouve
    for($i=0;$i<strlen($chaine);$i+=$taille)
    {
            if(substr($chaine,$i,$taille)<$nombre)
                    $taille++;
            $nombre=substr($chaine,$i,$taille);
            echo $nombre.'<br />';
            $total++;
    }
    echo 'soit : '.$total.' séries';
    ?>
    Cette fonction fait :
    J'ai une chaine qui ne comporte que des chiffres, mais elle est composée de chiffres et de nombres mis bout a bout mais toujours croissants :

    123678910111314

    Comment récupérer le nombre de chiffres et de nombres

    Ce qui donnerai :

    7 chiffres
    4 nombres

    résultat voulu : 11

    il peut y avoir certains chiffres ou nombres manquants.
    le maximun de séquences est de 20 et que les écarts n'exédent pas 2 ou 3.

  2. #2
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Par défaut
    Bonjour,

    c'est quasi similaire !

    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
    var chaine="123679101314";
    var taille=1;//taille du nombre en cours
    var nombre=0;//nombre en cours
    var total=0;//nombre total trouve
    var toEcho = "";
    for(var i = 0, lg = chaine.length; i< lg; i += taille)
    {
    	if(chaine.substring(i, taille) < nombre)
    		taille++;
    	nombre = chaine.substring(i, taille);
    	toEcho += nombre + '<br />';
    	total++;
    }
    alert(toEcho);
    alert('soit : ' +  total + ' séries');
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Par défaut
    Bonsoir Arnaud F.,

    Merci pour le code

    Mais le résultat n'est pas ce que fait PHP, ou alors, je me suis mal exprimé.

    La chaine : 123679101314 doit se décomposer comme ceci :

    1,2,3,6,7,9,10,13,14 soit 9 séquences

    La suite est toujours montante
    la séquence la plus importante ne dépassera jamais 19
    donc en balayant la chaine, dès que le chiffre deviens inférieur au précédent, c'est que l'on arrive sur des séquences de nombres et non plus de chiffres.

  4. #4
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Par défaut
    Bonjour,

    en effet, substring ne prend pas la longueur de la chaîne à extraire mais l'index de caractère de fin. De plus pour s'assurer que ça soit des comparaisons entre entier, il faut rajouter un parseInt.

    Ce qui donne :

    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
    var chaine="123679101314";
    var taille=1;//taille du nombre en cours
    var nombre=0;//nombre en cours
    var total=0;//nombre total trouve
    var toEcho = "";
    for(var i = 0, lg = chaine.length; i< lg; i += taille)
    {
    	if(parseInt(chaine.substring(i, i + taille)) < nombre) {
    		taille++;
    	}
    	nombre = parseInt(chaine.substring(i, i + taille));
    	toEcho += nombre + '<br />';
    	total++;
    }
    alert(toEcho);
    alert('soit : ' +  total + ' séries');
    En faisant quelques recherches sur le Web, on peut facilement arriver à ce résultat
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Par défaut
    Alors la, chapeau !!!

    Je galère depuis ce matin pour arriver mème pas
    au 1/4 de ce que tu a fais.

    (Malgré de très nombreuses recherches...)

    Un grand MERCI.

    @ +

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FPDF] Faire du pdf à partir de code php/html
    Par PedroBD dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 13/06/2006, 16h28
  2. [xsl / Php] faire passer une variable XSL en PHP
    Par klowlead dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 24/05/2006, 12h59
  3. [Tableaux] comment faire un moteur de recherche en php
    Par lindouchine dans le forum Langage
    Réponses: 4
    Dernier message: 23/03/2006, 23h14
  4. Choix ? Faire son site en perl ou php ?
    Par bakonu dans le forum Général Conception Web
    Réponses: 17
    Dernier message: 07/10/2005, 17h10

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