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 :

script alphabetic


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 453
    Points : 74
    Points
    74
    Par défaut script alphabetic
    Bonjour,

    je viens de trouver un script sur internet et je cherchais justement à vérifier qu'un champ rentré est bien de type string (uniquement des caracteres) mais il me semble qu'avec ce code il est possible d'entrer un chiffre en debut ou fin de mot. Est-ce que quelqu'un voit l'erreur?

    var regExpAlphabetic=/[a-zA-Z]+/g; //accepte une chaine alphabétique

    function matchRegularExpression(valeur, regularExpression)
    {
    var resultat = valeur.match(regularExpression);
    if(resultat!=null && resultat.length==1) return true;
    else return false;
    }

    function doesntMatchRegularExpression(valeur, regularExpression)
    {
    if(matchRegularExpression(valeur, regularExpression)) return false;
    else return true;
    }
    function isNotAlphabetic(valeur)
    {
    return doesntMatchRegularExpression(valeur, regExpAlphabetic);
    }

  2. #2
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    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 681
    Points : 5 221
    Points
    5 221
    Par défaut
    tu peux peut-être tester la présence de chiffres dans ta chaîne?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(chaine.match(/\d/)[0]) alert("pas de chiffres, s'il vous plaît.");

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 453
    Points : 74
    Points
    74
    Par défaut
    Je prefererais pas il faut aussi que je verifie que je n'ai pas non plus de ? , ; : et tout un tas de caractères spéciaux sinon...
    Je pense que mon problème vient de mon expression régulière

  4. #4
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    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 681
    Points : 5 221
    Points
    5 221
    Par défaut
    alors précise... Ta chaîne ne doit comporter que les 26 caractères alphabétiques? pas d'espace? pas de ponctuation? la casse est-elle importante?

    par exemple, pour les 26 caractères (hors casse):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(!/^[a-z]+$/i.test(chaine)) 
     
    ou
     
    if(chaine.match(/[^a-z]/i)[0])

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 453
    Points : 74
    Points
    74
    Par défaut
    Merci pour ton aide.
    En fait oui je voudrais vérifier que ma chaine est bien composée de lettres minuscule ou majuscule et uniquement des lettres.

    J'ai un peu de mal à suivre:

    quand tu fais if(chaine.match(/[^a-z]/i)[0])
    ca signifie quoi:
    / debut de chaine
    [^a-z] aucune lettre
    /i sans casse
    [0] tu prends la premiere lettre trouvée qui correspond a [^a-z] c'est-a-dire qui n'est pas une lettre et si c'est nul alors y'a que des lettres? C'est ca? if(chaine.match(/[^a-z]/i)[0])==null alors on a un mot constitué uniquement de lettres?

    Pour l'expression reguliere d'une date de type dd/MM/yyyy tu mettrais quoi:

    /[0-31]{1}[/][0-12]{1}[/][19|20]\d\d/i ?

    Il faudrait aussi que je verifie qu'il n'y a que 28ou 29 ou 30 ou 31 jours suivant les mois?

    Merci encore

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 453
    Points : 74
    Points
    74
    Par défaut
    J’en peux plus de ces scripts !

    J’essaye de valider mes dates mais ca marche pas :

    Pour selectionner une date je peux passer par un calendrier ou par l’inputtext (Jenia) :



    <td colspan="2">

    <h:outputText value="#{EFmsg.activationDate}"/>:&nbsp;&nbsp;&nbsp;

    <h:inputText value="#{EthicFlow_JspWizard.jspFormEPPService.pers_activationDate}" size="10" id="activationDate" required="true" >

    <f:convertDateTime pattern="dd/MM/yyyy"/>

    </h:inputText>&nbsp;

    <jp:popupCalendar for="activationDate" format="dd/MM/yyyy" />&nbsp;*

    </td>



    Et dans mon script je teste si c’est bien une date et si la date est supérieure mais rien ne se passe:



    function isFutureOrPresentDate(valeur)

    {

    var now = new Date();

    var now_day = now.getDay();

    var now_month = now.getMonth();

    var now_year = now.getYear();





    if(valeur.getYear()>now_year)

    return true;

    else if(valeur.getYear()==now_year)

    if(valeur.getMonth()>now_month)

    return true;

    else if(valeur.getMonth()==now_month)

    if(valeur.getDay()>now_day || valeur.getDay()==now_day)

    return true;

    else

    return false;

    else return false;

    else

    return false;

    }



    function CheckDate(d) {

    // Cette fonction vérifie le format JJ/MM/AAAA saisi et la validité de la date.

    // Le séparateur est défini dans la variable separateur

    var amin=1900; // année mini

    var amax=2100; // année maxi

    var separateur="/"; // separateur entre jour/mois/annee

    var j=(d.substring(0,2));

    var m=(d.substring(3,5));

    var a=(d.substring(6));

    var ok=1;

    if ( ((isNaN(j))||(j<1)||(j>31)) && (ok==1) ) {

    alert("Le jour n'est pas correct."); ok=0;

    }

    if ( ((isNaN(m))||(m<1)||(m>12)) && (ok==1) ) {

    alert("Le mois n'est pas correct."); ok=0;

    }

    if ( ((isNaN(a))||(a<amin)||(a>amax)) && (ok==1) ) {

    alert("L'année n'est pas correcte."); ok=0;

    }

    if ( ((d.substring(2,3)!=separateur)||(d.substring(5,6)!=separateur)) && (ok==1) ) {

    alert("Les séparateurs doivent être des "+separateur); ok=0;

    }

    if (ok==1) {

    var d2=new Date(a,m-1,j);

    j2=d2.getDate();

    m2=d2.getMonth()+1;

    a2=d2.getFullYear();

    if (a2<=100) {a2=1900+a2}

    if ( (j!=j2)||(m!=m2)||(a!=a2) ) {

    alert("La date "+d+" n'existe pas !");

    ok=0;

    }

    }

    return ok;

    }

    if(isFutureOrPresentDate(document.getElementById("person-props:activationDate").value)){

    document.getElementById("person-props:activationDate").className= "textFields";

    }

    else{

    disabled = true;

    document.getElementById("person-props:activationDate").className = "errorMessage";

    }

    }



    Qu’est ce que je fais encore de faux ??

  7. #7
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    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 681
    Points : 5 221
    Points
    5 221
    Par défaut
    quand tu fais if(chaine.match(/[^a-z]/i)[0])
    ca signifie quoi:
    / debut de chaine
    [^a-z] aucune lettre
    /i sans casse
    [0] tu prends la premiere lettre trouvée qui correspond a [^a-z] c'est-a-dire qui n'est pas une lettre et si c'est nul alors y'a que des lettres? C'est ca? if(chaine.match(/[^a-z]/i)[0])==null alors on a un mot constitué uniquement de lettres?
    très exactement oui

    pour la suite, attends, je regarde, t'en avais pas encore parlé...

  8. #8
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    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 681
    Points : 5 221
    Points
    5 221
    Par défaut
    essaie ceci et dis-moi si ça correspond un peu à ce que tu souhaites:
    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
     
    <form style="display:none" id="quand" action="">
     
    <p>
    <input name="j" type="text" size="1" maxlength="2" /> 
    <input name="m" type="text" size="1" maxlength="2" /> 
    <input name="a" type="text" size="1" maxlength="4" /> 
    <input type="button" value="ok" onclick="verif(f['j'].value,f['m'].value,f['a'].value)" /> 
    </p>
     
    </form>
     
    <script type="text/javascript">
     
    document.forms["quand"].style.display="block";
    var f=document.forms["quand"].elements;
     
    function verif(j,m,a){ 
    m-=1;
    d=new Date(a,m,j);
    var rep= (d.getMonth()!=m || d.getFullYear()!=a) ? "date invalide" : "date valide";
    alert(rep); 
     
    } 
     
    </script>
    http://javatwist.imingo.net/test.htm

Discussions similaires

  1. Quel est le meilleur script PHP de portail (CMS) ?
    Par Lana.Bauer dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 187
    Dernier message: 18/10/2012, 07h45
  2. [SQL] SCRIPT pour avoir une navigation avec les lettres de l'alphabet
    Par gantec dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 20/09/2007, 08h45
  3. quel langage choisir pour faire de script sous windows
    Par pas05 dans le forum Langages de programmation
    Réponses: 7
    Dernier message: 18/11/2002, 22h42
  4. Réponses: 2
    Dernier message: 11/07/2002, 08h31

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