Archive

Archives pour la catégorie ‘JavaScript’

SVG + JavaScript = Stress !

Depuis peu, les navigateurs modernes permettent d’utiliser des graphiques au format SVG. Cela est intéressant, car il est possible d’interagir avec ces graphiques à l’aide de JavaScript. Non plus seulement afin de redimensionner l’image, d’en modifier l’attribut alt, mais carrément de dessiner comme on le ferait avec un logiciel de dessin tel que Inkscape ! Mieux : il est possible non seulement de dessiner, mais d’intercepter des événements et de modifier l’image en conséquence ! Il devient ainsi possible de faire des choses étonnantes, et il n’y a presque plus besoin de Flash pour faire des applications web intéressantes.

La preuve : je me suis amusé à faire un petit jeu (que j’ai également ajouté sur ScriptLand) pour tester un peu ce qu’il était possible de faire. Voici ci-dessous : il s’agit de démêler les nœuds. Attention ! Il existe encore quelques petits bugs que je corrigerai – un jour…

À noter que pour faire cela, j’ai utilisé le merveilleux Prototype Graphic Framework qui simplifie bien la vie !

N’hésitez pas à faire part de vos commentaires !

Categories: JavaScript Tags: ,

Prototype et les interpréteurs JSON natifs des navigateurs : NATIVE_JSON_PARSE_SUPPORT

J’ai aujourd’hui expérimenté un curieux problème en essayant de mettre à jour Prototype sur un site web. Du code qui fonctionnait bien, subitement, ne fonctionnait plus avec la version 1.7.

En cherchant bien, j’ai fini pas comprendre qu’il y avait un problème avec du code JSON. Or, à première vue, ce code paraissait tout à fait correct :

{
	mode : "exact",
	elements : "textarea_bouzi_txt_index_para_1",
	theme : "advanced",
	skin : "o2k7",
	plugins : "",
	theme_advanced_toolbar_location : "top",
	theme_advanced_toolbar_align : "left",
	theme_advanced_statusbar_location : "bottom",
	convert_urls : false,
	relative_urls : false,
	forced_root_block : false,
	extended_valid_elements : "div[*],iframe[*]"
}

Pourquoi cela ne fonctionnait-il pas alors ? C’est qu’en y regardant de plus près, on voit qu’il n’est pas correct : les propriétés ne sont pas entre guillemets. Ce code (qui provient je crois de TinyMCE - c’est à vérifier) devrait donc plutôt être :

{
	"mode" : "exact",
	"elements" : "textarea_bouzi_txt_index_para_1",
	"theme" : "advanced",
	"skin" : "o2k7",
	"plugins" : "",
	"theme_advanced_toolbar_location" : "top",
	"theme_advanced_toolbar_align" : "left",
	"theme_advanced_statusbar_location" : "bottom",
	"convert_urls" : false,
	"relative_urls" : false,
	"forced_root_block" : false,
	"extended_valid_elements" : "div[*],iframe[*]"
}

Reste que cela n’explique pas pourquoi ce code, aussi erroné soit-il, ne fonctionnait subitement plus.

La réponse est que les navigateurs récents implémentent désormais d’une manière native le propre interpréteur JSON. Plus besoin de passer par une bibliothèque JavaScript JSON ; on fait simplement :

JSON.parse('["du code JSON"]');

Or, dans sa dernière version, Prototype essaye de s’appuyer sur l’interpréteur JSON natif du navigateur quand il en existe un, ceci à des fins de performance. Mais c’est là qu’il y a un problème : cet interpréteur est en général beaucoup plus rigoureux. J’ai en effet essayé avec Firefox 3.6 et Internet Explorer 9.0, et dans les deux cas, le code JSON qui n’utilise pas de guillemets pour les propriétés provoque une erreur.

Au sens strict, on ne peut pas parler d’un bug de ces interpréteurs, car le code JSON est effectivement mal formé. Cependant, il existe un grand nombre de bibliothèques qui ne rendent pas un code JSON avec les propriétés entre guillemets (comme apparemment la version de TinyMCE que j’utilise). Tout ce code fera immanquablement planter la dernière version de Prototype, ce qui est problématique.

La meilleure solution consisterait à fournir du code JSON bien formé à Prototype, mais ce n’est pas toujours possible. Reste alors une autre solution simple, consistant à downgrader prototype afin qu’il ne cherche pas à utiliser le parser natif du navigateur lorsqu’il y en a un, et le forcer à utiliser son propre interpréteur.

Pour ce faire, il y a plusieurs solutions, qui nécessitent toutes de modifier un peu le fichier prototype.js. Je les liste par ordre de préférence personnelle :

  • Remplacer la ligne 772 par :
    evalJSON: evalJSON,
  • Remplacer le bloc des lignes 535-537 par :
    var NATIVE_JSON_PARSE_SUPPORT = false;
  • Remplacer le bloc des lignes 718-721 par :
    function parseJSON() {
        var json = this.unfilterJSON();
        return evalJSON(json);
    }

Faites votre propre choix ! Même si la meilleure solution reste d’avoir du code JSON propre dès le départ :)

JavaScript – L’objet navigator

This entry is part 19 of 19 in the series JavaScript - Tutoriel
  1. Méthode
    1. javaEnabled()
  2. Propriétés
    1. appCodeName
    2. appName
    3. appVersion
    4. platform
    5. userAgent

On a vu que les navigateurs réagissent souvent différement les uns des autres lorsqu’il s’agit d’interpréter un
script. Par exemple, certaines propriétés d’un objet existe sous Netscape Navigator, mais pas sous Mircosoft
Internet Explorer, et vice-versa.
Il peut alors être utile d’avoir des informations supplémentaires sur le navigateur utilisé, afin d’adapter le
script en conséquent.
JavaScript met à notre disposition l’objet navigator. Cet objet est en fait, un « sous-objet » de l’objet
window. On peut donc y acceder de deux façons :

window.navigator

ou

navigator

Voici un exemple d’utilisation de cet objet :

with(document){
writeln("<pre>");
writeln("Navigateur   : " + navigator.appName);
writeln("+ Version    : " + navigator.appVersion);
writeln("+ Agent      : " + navigator.userAgent);
writeln("Système d'exploitation : " + navigator.platform);
if(navigator.javaEnabled())
writeln("Java est installé");
else
writeln("Java n'est pas installé");
writeln("</pre>");
}

Voici le résultat

Méthode

javaEnabled()
Renvoi true si Java est installé, false dans le cas contraire.

Propriétés

appCodeName
Renvoi le nom de code du navigateur.

appName
Renvoi le nom du navigateur.

appVersion
Renvoi la version du navigateur.

platform
Renvoi le système d’exploitation (la plateforme) de l’utilisateur.

userAgent
Renvoi le nom de code + la version du navigateur.

Categories: JavaScript Tags:

JavaScript – L’objet Number

This entry is part 15 of 19 in the series JavaScript - Tutoriel
  1. Propriétés de l’objet Number
    1. MAX_VALUE
    2. MIN_VALUE
    3. NaN
    4. NEGATIVE_INFINITY
    5. POSITIVE_INFINITY
  2. Méthodes de l’objet Number

Dans JavaScript, les nombres sont eux aussi des objets. Il s’agit de l’objet Number.
Comme pour String, il y a deux façons de créer un objet Number. Soit en utilisant
le constructeur Number (new Number()), ou bien implicitement :

var Nombre = new Number(25);
document.write(typeof Nombre);// Sortie -> object

ou bien :

var Nombre = 25;
document.write(typeof Nombre);// Sortie -> number

Même remarque que pour String : l'opérateur typeof ne renvoi pas la même chose, et
cependant, ces deux choses sont identiques.

La première syntaxe qui utilise le constructeur Number peut s'averer interessante en cas de conversion
du type String au type Number.
En effet ajouter 10 à la chaîne de caractères 11 ne donnera pas 21 mais
1011 comme le montre l'exemple suivant :

var MaVariable = "11";

MaVariable += 10;
document.writeln("<pre>");
document.writeln(MaVariable);// Sortie -> 1110
document.writeln(typeof MaVariable);// Sortie -> string
document.writeln("</pre>");

Une concatenation est effectuée. Il faut alors utiliser le constructeur Number pour réaliser une
conversion :

var MaVariable = "11";

MaVariable = (new Number(MaVariable)) + 10;// Conversion
document.writeln("<pre>");
document.writeln(MaVariable);// Sortie -> 21
document.writeln(typeof MaVariable);// Sortie -> number
document.writeln("</pre>");

Il est aussi possible d'effectuer une conversion en utilisant parseInt ou parseFloat. Ces deux méthodes appartiennent à l'objet
window (que nous détaillerons plus loin).
parseInt convertit son argument en nombre entier et parseFloat en nombre à virgule flotante :

var Nombre = "3.1415";// Un nombre dans une chaine

document.writeln("<pre>");
document.writeln(parseInt(Nombre));// Sortie -> 3
document.writeln(parseFloat(Nombre));// Sortie -> 3.1415
document.writeln(typeof parseFloat(Nombre));// Sortie -> number
document.writeln("</pre>");

On peut egalement determiner si une variable est un nombre ou non en utilisant la méthode isNaN de l'objet window. isNaN
signifie is Not a Number. Autrement dit, si l'argument transmis n'est pas un nombre, isNaN renvoi true :

var Chaine = new String("Hello");

document.write(isNaN(Chaine));// Sortie -> true

Propriétés de l'objet Number

MAX_VALUE
Renvoi la plus grande valeur utilisable :

document.write(Number.MAX_VALUE);// Sortie - > 1.7976931348623157e+308
MIN_VALUE
Renvoi la plus petite valeur utilisable :

document.write(Number.MIN_VALUE);// Sortie -> 5e-324
NaN
Renvoi la chaîne de caractères NaN qui signigie Not a Number (il arrive que je me repete :-D ). Une
valeur NaN peut par exemple être provoquée par une division telle que celle ci :

document.writeln("<pre>");
document.writeln(0 / 0);// Sortie -> NaN
document.writeln(Number.NaN);// Sortie -> NaN
document.writeln("&lt./pre>");
NEGATIVE_INFINITY
Renvoi la chaîne de caractères -Infinity, qui peut être le résultat d'une division telle que celle ci :

document.writeln("<pre>");
document.writeln(-1 / 0);// Sortie -> -Infinity
document.writeln(Number.NEGATIVE_INFINITY);// Sortie -> -Infinity
document.writeln("</pre>");
POSITIVE_INFINITY
Renvoi la chaîne de caractères Infinity, qui peut être le résultat d'une division telle que celle ci :

document.writeln("<pre>");
document.writeln(1 / 0);// Sortie -> Infinity
document.writeln(Number.POSITIVE_INFINITY);// Sortie -> Infinity
document.writeln("</pre>");

Méthodes de l'objet Number

L'objet Number ne possede qu'une seule méthode : toString().
toString convertit le nombre en objet de type String. Mais ce n'est pas tout : si un argument est transmis, le nombre
est convertit dans la base représenté par cette argument.
Exemple :

var Nombre = 255;

document.writeln("<pre>");
document.writeln(Nombre + " en binaire : " + Nombre.toString(2));
document.writeln(Nombre + " en octal : " + Nombre.toString(8));
document.writeln(Nombre + " en hexadecimal : " + Nombre.toString(16));
document.writeln("</pre>");

Il est à noter que JavaScript distingue 3 bases : décimal (base 10), octal (base 8) et hexadécimal (base 16).
Pour exprimer une valeur octale, il faut faire préceder le nombre de 0 (zéro). Pour les valeurs hexadécimales, de 0x ou 0X
(zéro x) :

var Decimal = 10;
var Octal = 012;
var Hexadecimal = 0xA;

document.writeln("<pre>");
document.writeln(Decimal);// Sortie -> 10
document.writeln(Octal);// Sortie -> 10
document.writeln(Hexadecimal);// Sortie -> 10
document.writeln("</pre>");
Categories: JavaScript Tags:

JavaScript – L’objet Math

This entry is part 16 of 19 in the series JavaScript - Tutoriel
  1. Propriétés de l’objet Math
    1. E
    2. LN10
    3. LN2
    4. LOG10E
    5. LOG2E
    6. PI
    7. SQRT1_2
    8. SQRT
  2. Méthodes de l’objet Math
    1. abs()
    2. acos()
    3. asin()
    4. atan()
    5. ceil()
    6. cos()
    7. exp()
    8. floor()
    9. log()
    10. max()
    11. min()
    12. pow()
    13. random()
    14. round()
    15. sin()
    16. sqrt()
    17. tan()

Comme son nom semble l’indiquer, l’objet Math permet de réaliser de faire … des maths!
Cet objet regroupe tout un tas de méthodes et de propriétés, permettant de résoudre n’importe quel probleme.
L’objet Math n’est pas instanciable. C’est à dire que vous ne pouvez pas écrire quelque chose
comme :

var MesMaths = new Math();// Archi-faux !

Par contre, vous pouvez très bien établir une réference sur celui-ci, bien que l’interet d’une telle chose soit
discutable :

var RefMath = Math;

Propriétés de l’objet Math

E
Renvoi la constante d’Euler (e) :

document.write(Math.E);// Sortie -> 2.718281828459045
LN10
Renvoi le logarithme naturel de 10 :

document.write(Math.LN10);// Sortie -> 2.302585092994046
LN2
Renvoi le logarithme naturel de 2 :

document.write(Math.LN2);// Sortie -> 0.6931471805599453
LOG10E
Renvoi le logarithme en base 10 de e :

document.write(Math.LOG10E);// Sortie -> 1.4426950408889633
LOG2E
Renvoi le logarithme en base 2 de e :

document.write(Math.LOG2E);// Sortie -> 0.4342944819032518
PI
Renvoi la constante PI :

document.write(Math.PI);// Sortie -> 3.141592653589793
SQRT1_2
Renvoi l’inverse de la racine carré de 2 :

document.write(Math.SQRT1_2);// Sortie -> 0.7071067811865476
SQRT2
Renvoi la racine carré de 2 :

document.write(Math.SQRT2);// Sortie -> 1.4142135623730951

Méthodes de l’objet Math

abs()
Renvoi la valeur absolue de l’argument :

document.write(Math.abs(-5));// Sortie -> 5
acos()
Renvoi l’arc cosinus l’argument. La valeur retournée est en radians :

document.write(Math.acos(Math.SQRT1_2));// Sortie -> PI/4 = 0.7853...
asin()
Renvoi l’arc sinus de l’argument :

document.write(Math.asin(Math.SQRT1_2);// Sortie -> PI/4 = 0.7853...
atan()
Renvoi l’arc tangente de l’argument :

document.write(Math.atan(1));// Sortie -> PI/4 = 0.7853...
ceil()
Renvoi l’argument arondi à l’entier supérieur :

document.write(Math.ceil(-Math.PI));// Sortie -> -3
cos()
Renvoi le cosinus de l’argument. L’unité est le radian :

document.write(Math.cos(0));// Sortie -> 1
exp()
Renvoi ex ou x est l’argument :

document.write(Math.exp(1)).// Sortie -> e = 2.7182...
floor()
Renvoi l’argument arondi à l’entier inférieur :

document.write(Math.floor(-Math.PI));// Sortie -> -4
log()
Renvoi le logarithme naturel de son argument :

document.write(Math.log(Math.E));// Sortie -> 1
max()
Renvoi la plus grande valeur entre tous les arguments transmis :

document.write(Math.max(Math.PI, -Math.PI));// Sortie -> PI = 3.1415...
min()
Renvoi la plus petite valeur entre tous les arguments transmis :

document.write(Math.min(1, 2, 3, 4, 5));// Sortie -> 1
pow()
Renvoi le premier argument eleve à la puissance du second argument :

document.write(Math.pow(Math.SQRT2, 2));// Sortie -> 2
random()
Renvoi une valeur aléatoire entre 0 et 1 :

document.write(Math.random() * 10);// Sortie -> ? < 10
round()
Renvoi l'argument arrondi à l'entier le plus proche :

document.write(Math.round(1.4));// Sortie -> 1
sin()
Renvoi le sinus de l'argument. L'unité est le radian :

document.write(Math.sin(Math.PI / 2));// Sortie -> 1
sqrt()
Renvoi la racine carré de son argument :

document.write(Math.sqrt(36));// Sortie -> 6
tan()
Renvoi la tangente de son argument :

document.write(Math.tan(0));// Sortie -> 0
Categories: JavaScript Tags:

JavaScript – L’objet Date

This entry is part 17 of 19 in the series JavaScript - Tutoriel
  1. Le constructeur Date
    1. Date()
    2. Date(horodateur)
    3. Date(ChaineDeCaractere)
    4. Date(annee, mois, jour, heures, minutes, secondes, millisecondes)
  2. Méthodes
    1. getDate()
    2. getDay()
    3. getFullYear()
    4. getHours()
    5. getMilliseconds()
    6. getMinutes()
    7. getMonth()
    8. getSeconds()
    9. getTime()
    10. getTimeZoneOffset()
    11. getYear()
    12. setDate()
    13. setFullYear()
    14. setHours()
    15. setMilliseconds()
    16. setMinutes()
    17. setMonth()
    18. setSeconds()
    19. setTime()
    20. setYear()
    21. toGMTString()
    22. toLocaleString()
    23. toString()
    24. valueOf()

L’objet Date permet de manipuler facilement les dates et les heures.

Le constructeur Date

Pour créer un objet Date on à le choix entre differentes syntaxes, parmi les suivantes.

Date()

L’objet representera la date et l’heure actuelle.
Syntaxe :

var Maintenant = new Date();

Date(horodateur)

Dans le monde Unix, les dates sont représentées par le nombre de milisecondes écoulées depuis le 1er janvier
1970 (qui par ailleur était un jeudi :-) ). Une variable
contenant une telle donnée est appellée un horodateur.
Cette syntaxe réclame donc un horodateur, representant la date à utiliser :

var PremJanvier70 = new Date(0):// jeudi 1 janvier 1970 01:00:00

Date(ChaineDeCaractere)

Cette syntaxe prend comme argument une chaîne de caractères representant la date à utiliser.
La syntaxe d’une telle chaîne doit être du format suivant :

Day Mth d hh:mm:ss UTC+off YYYY
  • Day represente les 3 premières lettres du jour (en anglais, bien sur…). Les valeurs peuvent
    donc être : Mon, Tue, Wed, Thu, Fri,
    Sat et Sun.
  • Mth represente les 3 premières lettes du mois (toujours en anglais, évidemment :-) . Voici donc
    les valeurs possibles : Jan, Feb, Mar, Apr, May,
    Jun, Jul, Aug, Sep, Oct, Nov et
    Dec.
  • d est le jour du mois.
  • hh:mm:ss est l’heure avec hh pour les heures, mm pour les minutes et
    ss pour les secondes.
  • +off represente « l’offset » par rapport au fuseau horaire de Greenwich.
  • yyyy représente l’année

Exemple :

var Jeu5Nov1982 = new Date("Fri Nov 5 12:00:00 UTC+1 1982");// 5-11-82 en France

Date(annee, mois, jour, heures, minutes, secondes, millisecondes)

Chacun de ces arguments represente un nombre. Seul les deux premiers arguments (annee et mois)
sont obligatoires, les autres étant facultatifs (en cas d’omission, ils sont considérés comme valant 0).
Exemple :

var PacoRabanne = new Date(1999, 9, 9);// 9/9/1999

Méthodes

getDate()
Renvoi le jour du mois (1 à 31).

getDay()
Renvoi le numéro du jour de la semaine (0 à 7).

getFullYear()
Renvoi les 4 chiffres de l’année.

getHours()
Renvoi le nombre d’heures (0 à 23).

getMilliseconds()
Renvoi le nombre de millisecondes (ce n’est pas un horodateur!).

getMinutes()
Renvoi le nombre de minutes (0 à 59).

getMonth()
Renvoi le mois (0 à 11).

getSeconds()
Renvoi le nombre de secondes (0 à 59).

getTime()
Renvoi le nombre de millisecondes écoulée depuis 1970 (horodateur).

getTimeZoneOffset()
Renvoi l'offset entre le fuseau horaire de la date et le fuseau horaire de Greenwich.

getYear()
Renvoi les deux derniers chiffres de la date si celle ci est comprise entre en 1900 et 1999,
sinon renvoi les 4 chiffres (bug avec Netscape 4.x dans ce dernier cas).

setDate()
Fixe le jour du mois (0 à 31) de la date.

setFullYear()
Fixe l'année de la date.

setHours()
Fixe les heures.

setMilliseconds()
Fixe les millisecondes.

setMinutes()
Fixe les minutes.

setMonth()
Fixe le mois (0 à 11) de la date.

setSeconds()
Fixe les secondes.

setTime()
Modifie la date en fonction de l'horodateur passé en argument.

setYear()
Fixe l'année de la date, sur deux chiffres (c'est à dire de 1900 à 1999, avec des valeurs s'echelonant
de 0 à 99).

toGMTString()
Renvoi une chaîne de caractères representant la date sous la forme Day Mth d hh:mm:ss UTC+off YYYY en
prenant pour origine le fuseau horaire de Greenwich.

toLocaleString()
Renvoi une chaîne de caractères representant la date mise en forme suivant les parametres locaux.

toString()
Renvoi une chaîne de caractères representant la date sous la forme Day Mth d hh:mm:ss UTC+off YYYY.

valueOf()
Renvoi l'horodateur (même effet que getTime()).

Categories: JavaScript Tags:

JavaScript – Les expressions régulières

This entry is part 18 of 19 in the series JavaScript - Tutoriel
  1. L’objet RegExp
    1. Propriétés de l’objet RegExp
      1. global
      2. ignoreCase
      3. lastIndex
    2. Méthodes de l’objet RegExp
      1. compile(expression, options)
      2. exec(chaine)
      3. test(chaine)
  2. Syntaxe des expressions régulières

Les expressions régulières permettent de manipuler les chaînes de caractères de façon très poussée. Dans
JavaScript, elles sont souvent utilisées pour la vérification des données transmises dans les formulaires
(présence du @ et pas d’espace dans l’email par exemple).
Les expressions réguliéres utilisées par JavaScript sont compatibles Perl (Perl est un langage utilisé
pour l’écriture de CGI).
La syntaxe des expressions régulières est extremement complete (et complexe) et nous nous contenterons ici
d’introduire le sujet. En effet, il existe des livres de plus de 400 pages sur ce sujet…

L’objet RegExp

Nous aurions pu faire un pari la dessus : et oui, dans JavaScript, les expressions régulières sont aussi des
objets. Ici, il s’agit de l’objet RegExp.
La syntaxe du constructeur est la suivante :

var MonExpression = new RegExp(expression, options);

MonExpression symbolise un identificateur correct, expression represente l’expression
régulière et options, les options de cette expression. Pour l’instant, ça ne nous dit pas grand
chose. Mais ce n’est qu’un début.

À noter qu’une expression régulière peut également être créée de manière littérale, comme par exemple ci-dessous :

var At = /@/;

Non! Vous ne revez pas! La ligne précedente est tout à fait correct. Il ne s’agit pas d’une chaîne de caractères,
vu qu’il n’y a ni guillemets, ni apostrophes, et ce n’est pas non plus un nombre : c’est une expression régulière.
Mais tout ceci deviendra plus clair dans un instant.

Propriétés de l’objet RegExp

global
Renvoi true si l’expression permet d’effectuer une recherche globale (attribut g présent).

ignoreCase
Renvoi true si l’expression est sensible à la casse des caractères ou non.

lastIndex
Renvoi la position du caractère où l’expression a été trouvée dans une chaîne lors de l’utilisation
de la méthode exec.

Méthodes de l’objet RegExp

compile(expression, options)
Modifie l’expression régulière en utilisant expression comme nouveau modéle et options
comme nouveaux attributs.

exec(chaine)
Teste si l’expression régulière peut s’appliquer à la chaîne de caractères chaine
passée en argument.
Si l’expression est trouvée, la méthode livre en retour un tableau (la valeur null est
renvoyée en cas d’echec).
Le première index de ce tableau (par exemple : Tableau[0]) represente la chaîne de caractères
correspondante au modéle, lorsque celui-ci utilise des parenthèses capturantes.
Ce tableau possede aussi 2 propriétés :

  • index qui correspond à l’index du caractère de la chaîne où l’expression a été trouvée.
  • input qui est en fait un lien sur la chaîne de caractère.

test(chaine)
Renvoi true si l’expression régulière est contenue dans chaine.

Syntaxe des expressions régulières

Tout d’abord, les options. Il y en a deux :

  • g qui permet de réaliser une recherche globale, c’est à dire sur l’ensemble de la chaîne
    de caractères. Par exemple, si l’expression peut s’appliquer à deux endroits dans la chaîne, les deux
    occurances seront prise en compte, ce qui n’est pas le cas si g est abscent, où seule la
    première occurence est prise en compte.
    Exemple, avec la méthode replace de l’objet String (voir pages précedentes
    pour une explication détaillée) :

    var MonReg=/a/g;// ou bien var MonReg = new RegExp("a", "g");
    var Chaine="abracadabra";
    
    Chaine = Chaine.replace(MonReg, "A");// on remplace tout les 'a' par des 'A'
    document.write(Chaine);// Sortie -> AbrAcAdAbrA
    
  • i permet de rendre insensible à la casse l’expression. Ces options sont cumulables. On peut
    donc écrire :

    var MonReg=/abr/gi;
    var Chaine="aBracadAbRa";
    
    Chaine = Chaine.replace(MonReg, "ABR");
    document.write(Chaine);// Sortie -> ABRacadABRA
    

Maintenant, voyons d’un peu plus près la syntaxe de ces expressions.

Les crochets permettent de spécifier des alternatives entre plusieurs caractères. Par exemple, on peut vouloir
effectuer une recherche qui retiendrai les mots moi ou toi, et pas le mot roi.
On se rend compte que seul la première lettre differe. On ecrira alors les caractères m et t
entre crochets :

var MonReg = /[tm]oi/i;

with(document){
writeln(MonReg.test("moi"));// true
writeln(MonReg.test("toi"));// true
writeln(MonReg.test("roi"));// false
}

Au lieu d’enumérer les lettres, on peut dans cerains cas préferer de spécifier un intervale, par exemple, de
a à l. On place alors la première lettre de l’intervale, suivie du signe moins (-)
et de la seconde lettre de l’intervale :

var MonReg = /[a-l]ou/i;

with(document){
writeln(MonReg.test("cou"));// true
writeln(MonReg.test("pou"));// false
}

On peut aussi spécifier des alternatives, séparées par le caractères pipe (|), pour rechercher
aol ou wanadoo :

var MonReg = /aol|wanadoo/;

with(document){
writeln(MonReg.test("robert@aol.com"));// true
writeln(MonReg.test("webmaster@cybwarrior.com"));// false
writeln(MonReg.test("marcel@wanadoo.fr"));// true
}

Si on sait qu’un caractère intervient, mais que l’on ne sait pas combien de fois, on peut utiliser le caractère
étoile (*). L’étoile indique que le caractère qui la précede peut intervenir 0 ou plusieurs fois dans
la chaîne :

var MonReg = /a*tchoum/;
var Chaine1 = "aaaaaaaaaaaaatchoum!";
var Chaine2 = "tchoum";

Chaine1 = Chaine1.replace(MonReg, "atchoum");
Chaine2 = Chaine2.replace(MonReg, "atchoum");

document.write(Chaine1);// Sortie -> atchoum!
document.write(Chaine2);// Sortie -> atchoum

Par contre, si on veut que le caractère a intervienne au moins une fois, il nous faut substituer
l’étoile par un plus (+) :

var MonReg = /a+tchoum/;
var Chaine1 = "aaaaaaaaaaaaatchoum!";
var Chaine2 = "tchoum";

Chaine1 = Chaine1.replace(MonReg, "atchoum");
Chaine2 = Chaine2.replace(MonReg, "atchoum");

document.write(Chaine1);// Sortie -> atchoum!
document.write(Chaine2);// Sortie -> tchoum (rien n'est modifié)

On peut aussi utiliser le point d’interogation (?) pour présicer que le caractère précedent est optionel :

var MonReg = /bienvenue?/;// Avec ou sans e ?

with(document){
writeln(MonReg.test("bienvenue"));// true
writeln(MonReg.test("bienvenu"));// true
}

Si on veut qu’un caractère intervienne un nombre précis de fois, on peut le préciser grace aux accolades ({
et }).
Voici comment detecter des codes de la forme XXX-XXX-XX.XX,ou X est un nombre :

var MonReg = /[0-9]{3}-[0-9]{3}-[0-9]{2}.[0-9]{2}/;

with(document){
writeln(MonReg.test("123-456-78.90"));// true
writeln(MonReg.test("4567-76-322.1"));// false
}

On peut aussi spécifier un nombre minimal et un nombre maximal de fois en utilisant les accolades sous la forme
{min, max}, ou min represente le nombre minimal et max le nombre maximal.
Au lieu de specifier un unique caractère, on peut specifier un mot en le placant entre parenthèses :

var MonReg = /Raph(ael)?/;

document.write(MonReg.test("Raphael")); // true
document.write(MonReg.test("Raph")); // true
Categories: JavaScript Tags:

JavaScript – Les fonctions

This entry is part 12 of 19 in the series JavaScript - Tutoriel
  1. Le cas des variables
    1. Les variables globales
    2. Les variables locales

Dans un programme, il arrive souvent que l’on est a executer les même instructions plusieurs fois de suites. Dans certains cas, on peut utiliser
une boucle. Mais dans d’autres, il peut être préférable de créer une fonction que l’on poura appeller par la suite en cas de besoin.
Pour créer une fonction, on utilise tout simplement function, suivit du nom de la fonction qui doit être un indentificateur valide, puis des
parenthèses et enfin des très célébres accolades.
Passons pour le moment sur les parenthèses. La fonction proprement dite se trouve entre les accolades. Voici un exemple de fonction :

function Hello(){// Ceci est une fonction
document.write("Hello! Visiteur!<br>");
document.write("Ça va bien aujourd'hui ?<br>");
}

Cette fonction peut ensuite être appelée tout simplement en utilisant son nom (ici, Hello) :

function Hello(){
document.write("Hello! Visiteur!<br>");
document.write("Ça va bien aujourd'hui ?<br>");
}

Hello();// Appel de la fonction Hello

Dès que l’interpreteur va rencontrer Hello(), il va executer les instructions comprises dans cette même fonction.
Comme ceci, une fonction est plutôt limitée. Mais on peut lui adjoindre des arguments. Par exemple, lorsque vous utiliser la méthode write
de l’objet document, vous lui donner un argument qui est la chaîne de caractères à écrire.
Les arguments doivent être donnés entre les parenthèses de la fonction, sous forme de variables. Ces variables peuvent ensuite être utilisées dans
la fonction :

function Hello(nom, temps){// 2 arguments : nom et temps
document.write("Hello! " + nom + "!<br>");
document.write("Voici le temps : " + temps  + "<br>");
}

Cette fonction peut ensuite être appelée comme n’importe quel autre fonction, à condition de lui passer des arguments (sinon, les variables seront
indefinies (undefined) et les conséquences peuvent être indésirables).

function Hello(nom, temps){
document.write("Hello! " + nom + "!<br>");
document.write("Voici le temps : " + temps  + "<br>");
}

Hello("Francky", "Beau soleil");
Hello("Jo", "Maussade");

Contrairement à d’autres langages, JavaScript ne peut pas modifier les variables par référence. Nous ne nous avancerons donc pas plus sur ce sujet.
Les fonctions, quelles aient des arguments ou pas, ont toutes accès à un tableau nommé arguments. Dans ce tableau sont répertoriés tous
les arguments passés à la fonction. Cela permet d’apporter plus ou moins un certain dynamisme au fonction. Voici un exemple :

function Args(){// Pas d'arguments...
for(var i=0; i < arguments.length; i++){// ...et pourtant !
document.write("Argument N°" + i + " " + arguments[i] + "<br>");
}
}

Args("Un argument", "2 arguments", "3 arguments");

Une fonction peut également retourner une valeur. On utilise pour cela l'instruction return à l'interieur de celle-ci, suivit de la valeur
à retourner. Une fois que l'interpréteur à rencontré l'instruction return, toutes les instructions qui peuvent suivre ne sont pas executées
car la fonction est quitée.
Exemple :

function Volume(longueur, largeur, hauteur){
return longueur * largeur * hauteur;
}

document.write("Le volume d'une boite de 10x15x20 est de " + Volume(10, 15, 20));

On ne le cache pas depuis le début, JavaScript est directement issu de Java. Mais il est également doté d'un spectaculaire dynamisme. On peut par
exemple affecter une fonction à une variable, comme dans l'exemple suivant :

function Volume(longueur, largeur, hauteur){
return longueur * largeur * hauteur;
}

var MonVolume = Volume;

document.write("Le volume d'une boite de 10x15x20 est de " + MonVolume(10, 15, 20));

On peut aussi créer des fonction littéralement, comme pour les tableaux :

var HelloBis=function(){
document.write("Re-bonjours, les amis!<br>");
document.write("Me re-voila dans une fonction littéral");
}

HelloBis();

Une dernière possibilité est d'utiliser le constructeur Function. Function prend pour arguments les noms des arguments que la fonction
va utiliser (séparés par des virgules, autant de fois que necessaire), et comme dernier argument, les instructions a executer :

var Bonjour=new Function("nom", "document.write('Hello, ' + nom + '! Tu vas bien ')");

Bonjour("Paul");

Le cas des variables

L'accés aux variables par une fonction est soumis à certaines rêgle. Il faut alors distinguer ce que l'on appelle les variables globales et
les variables locales.

Les variables globales

Une variable globale est accessible par toutes les fonctions d'un script. Elle est déclarée comme d'habitude par le mot-clef var, à
l'exterieur des fonctions.
Les instructions situées ensuite à l'interieur des fonctions peuvent ensuite accéder à cette variable :

function MaFonction(){
MaVariable++;// Modification de la variable GLOBALE
}

var MaVariable=10;// Ceci est une variable GLOBALE

MaFonction();
document.write(MaVariable);// Sortie -> 11

Les variables locales

Un variable locales est accessible uniquement par les instructions de la fonction où celle ci est déclarée. Les autres fonctions ou le corps
principal du script ne peuvent pas l'utiliser. On déclare une variable locale comme d'habitude, avec le mot-clef var. Seulement, la
déclaration doit se trouver dans la fonction où la variable doit être locale (logique!) :

function FonctionBis(){
var MaVariable=10;// Ceci est une variable LOCALE
}

FonctionBis();// Appel à FonctionBis qui initialise
// la variable MaVariable
document.write(MaVariable);// !! ERREUR : Variable indéfinie !!

Il est souvent préférable d'avoir recours aux variables locales et au passage par arguments entre fonctions, plutôt que d'utiliser un grand nombre
de variables globales, souvent source de complication et d'erreur.

Un point cependant : et si une variable locale porte le même nom qu'une variable globale ?
Et bien c'est la variable locale qui a autorité :

function UneFonction(){
var MaVariable;

document.write(MaVariable);// Sortie -> undefined
}

var MaVariable = "Ceci est une variable globale";
UneFonction();
Categories: JavaScript Tags:

JavaScript – Les objets

This entry is part 13 of 19 in the series JavaScript - Tutoriel
  1. Les fonctions constructeur
  2. L’objet Object
  3. Les objets Initializer
  4. with

Les fonctions constructeur

On a déjà vu pour les tableaux comment créer des objets avec l’opérateur new
et un constructeur (dans ce cas, le constructeur en question était Array()).

JavaScript permet au programmeur de créer ses propres classes d’objets. Il faut alors avoir recours à une fonction
constructeur
.
Une fonction constructeur ne différe, globalement, en rien d’une fonction classique.
Par exemple, pour créer une classe nommée Personel, on utilisera une fonction nommée Personel :

function Personel(){
// Une fonction constructeur
}

On peut ensuite créer des objets Personel :

function Personel(){
// Une fonction constructeur
}

var Employe = new Personel();

Utilisée ainsi, une fonction constructeur n’a que peu d’interets. Mais comme avec une fonction classique, on peut spécifier des arguments. On peut
ensuite stocker ces informations en les rendant spécifique à l’objet créé à l’aide du mot-clef this. this établi une référence
avec l’objet en cours.
Exemple :

function Personel(nom, prenom, age, fonction, salaire){
this.nom=nom;
this.prenom=prenom;
this.age=age;
this.fonction=fonction;
this.salaire=salaire;
}

var Employe = new Personel("Talon", "Achille", "40 - 50", "Erudit", "300KF");

On peut ensuite accéder à ces propriété comme on le ferait avec n’importe quel autre objet :

function Personel(nom, prenom, age, fonction, salaire){
this.nom=nom;
this.prenom=prenom;
this.age=age;
this.fonction=fonction;
this.salaire=salaire;
}

var Employe = new Personel("Talon", "Achille", "40 - 50", "Erudit", "300KF");

document.write("Cet employe s'appelle " + Employe.prenom + " " + Employe.nom);

Comme on l’a vu avec les objets étudiés précedement, un objet posséde des méthodes.
Pour ajouter une méthode à un objet, il suffit de créer une fonction est de l’associer à cet objet. Il existe pour cela plusieurs façons :

function Carte(){
document.write("<table border=0>");
// Utilisation d'une boucle for...in
// pour parcourir les propriétés
for(Prop in this){
if(Prop=='Carte')continue;// Si c'est cette méthode on continue
document.write("<tr><th>" + Prop + " :</th>");
document.write("<td>" + this[Prop] + "</td></tr>");
}
document.write("</table>");
}

function Personel(nom, prenom, age, fonction, salaire){
this.nom=nom;
this.prenom=prenom;
this.age=age;
this.fonction=fonction;
this.salaire=salaire;
this.Carte=Carte;
}

ou bien, parfois plus élegant :

function Personel(nom, prenom, age, fonction, salaire){
this.nom=nom;
this.prenom=prenom;
this.age=age;
this.fonction=fonction;
this.salaire=salaire;
this.Carte=function(){
document.write("<table border=0>");
for(Prop in this){
if(Prop=='Carte')continue;
document.write("<tr><th>" + Prop + " :</th>");
document.write("<td>" + this[Prop] + "</td></tr>");
}
document.write("</table>");
}
}

On peut ensuite appeler cette méthode comme n’importe quel autre méthode…

var Employe = new Personel("Talon", "Achille", "40 - 50", "Erudit", "300KF");

Employe.Carte();// Création de la carte de visite.

L’objet Object

Une autre possibilité de créer des objets est d’utiliser le constructeur Object. Pour créer un objet nommé Employe, on écrira :

var Employe = new Object();

On peut ensuite ajouter des propriétés et des méthodes :

var Employe = new Object();

Employe.nom="Talon";
Employe.prenom="Achille";
Employe.age="40 - 50";
Employe.fonction="Erudit";
Employe.salaire="300KF";
Employe.Carte=function(){
document.write("<table border=0>");
for(Prop in this){
if(Prop=='Carte')continue;
document.write("<tr><th>" + Prop + " :</th>");
document.write("<td>" + this[Prop] + "</td></tr>");
}
document.write("</table>");
}

Employe.Carte();// Appel de la méthode Carte()

Il est possible d’enlever des propriétés ou des methodes d’un objet en utilisant l’instruction delete :

var Employe = new Object();

Employe.nom="Talon";
Employe.prenom="Achille";
Employe.age="40 - 50";
Employe.fonction="Erudit";
Employe.salaire="300KF";
Employe.Carte=function(){
document.write("<table border=0>");
for(Prop in this){
if(Prop=='Carte')continue;
document.write("<tr><th>" + Prop + " :</th>");
document.write("<td>" + this[Prop] + "</td></tr>");
}
document.write("</table>");
}

delete Employe.Carte;// Suppression de la methode Carte()
Employe.Carte();// !! ERREUR !!

Les objets Initializer

Comme pour les tableaux, il est possible de créer des objets littéralement. Les propriétés et méthodes sont alors regroupées entre accolades lors
de l’initialisation, et sont séparées par des virgules. Pour affecter des valeurs au différents élements, on utilise non pas le signe égal, mais
les doubles-points (:) :

var Employe = {
nom: "Talon",
prenom: "Achille",
age: "40 - 50",
fonction: "Erudit",
salaire: "300KF",
Carte: function(){
document.write("<table border=0>");
for(Prop in this){
if(Prop=='Carte')continue;
document.write("<tr><th>" + Prop + " :</th>");
document.write("<td>" + this[Prop] + "</td></tr>");
}
document.write("</table>");
}
};

Employe.Carte();// Appel de la methode Carte()

with

with permet de ménager les touches de son clavier et de reposer les doigts du programmeur :-D .
Observez plutôt :

var Employe = {nom: "Talon", prenom: "Achille", age: "40 - 50",fonction: "Erudit",
salaire: "300KF"};

document.writeln("<pre>");
document.writeln("Nom      : " + Employe.nom);
document.writeln("Prénom   : " + Employe.prenom);
document.writeln("Age      : " + Employe.age);
document.writeln("Fonction : " + Employe.fonction);
document.writeln("Salaire  : " + Employe.salaire);
document.writeln("</pre>");

On aurait pu simplifier ainsi :

var Employe = {nom: "Talon", prenom: "Achille", age: "40 - 50",fonction: "Erudit",
salaire: "300KF"};

with(Employe){
document.writeln("<pre>");
document.writeln("Nom      : " + nom);
document.writeln("Prénom   : " + prenom);
document.writeln("Age      : " + age);
document.writeln("Fonction : " + fonction);
document.writeln("Salaire  : " + salaire);
document.writeln("</pre>");
}

ou encore :

var Employe = {nom: "Talon", prenom: "Achille", age: "40 - 50",fonction: "Erudit",
salaire: "300KF"};

with(document){
writeln("<pre>");
writeln("Nom      : " + Employe.nom);
writeln("Prénom   : " + Employe.prenom);
writeln("Age      : " + Employe.age);
writeln("Fonction : " + Employe.fonction);
writeln("Salaire  : " + Employe.salaire);
writeln("</pre>");
}
Categories: JavaScript Tags:

JavaScript – L’objet String

This entry is part 14 of 19 in the series JavaScript - Tutoriel
  1. Propriétés
    1. length
  2. Méthodes
    1. blink()
    2. bold()
    3. charAt()
    4. charCodeAt()
    5. concat()
    6. fixed()
    7. fontcolor()
    8. fontsize()
    9. indexOf()
    10. italics()
    11. lastIndexOf()
    12. link()
    13. match()
    14. replace()
    15. search()
    16. slice()
    17. split()
    18. strike()
    19. sub()
    20. sup()
    21. toLowerCase()
    22. toUpperCase()

Dans JavaScript, les chaînes de caractères (par exemple, 'Ceci est un arbre', ou "et ici, c'est une sauterelle") sont
en fait des objets String.
String est ce qu’on appelle un objet intégré, car il existe déjà.
On peut créer un objet String de deux manières :

var Chaine = new String("Hello !");
document.write(typeof Chaine);// Sortie -> object

ou

var Chaine = "Hello !";
document.write(typeof Chaine);// Sortie -> string

Vous remarquez que le type renvoyé par l’opérateur typeof n’est pas le même. C’est cependant bel et bien la même chose.

String n’echappe pas à la régle : lui aussi possede des propriétés et des méthodes.

Propriétés

length
Renvoi le nombre de caractères de la chaîne :

var Chaine = new String("Ceci est une chaine de caractères");

document.write("Chaine est composé de " + Chaine.length + " caractères.");

Méthodes

blink()
Retourne la chaîne de caractères encadrée des balises <BLINK> et </BLINK>.

var Chaine = "Clignotant";

document.write(Chaine.blink());// ecrit <BLINK>Clignotant</BLINK>
bold()
Retourne la chaîne de caractères encadrée des balises <B> et </B>.

var Chaine = "Gras";

document.write(Chaine.bold());// ecrit <B>Gras</B>
charAt(Index)
Retourne le caractère positionné à l’index spécifié par l’argument.

var Chaine = "http://www.cybwarrior.com/";

document.write(Chaine.charAt(12));// Sortie -> y
charCodeAt(Index)
Retourne le code ASCII du caractère à la position précisé par l’argument.

var Chaine = "http://www.cybwarrior.com/";

document.write(Chaine.charAt(12));// Sortie -> 121
concat(chaine1, chaine2)
Retourne la concaténation de la chaîne de caractères initiale avec les chaînes de caractères transmises en arguments.

var Chaine = "http://www.cybwarrior.com/";

document.write(Chaine.concat("langages/", "javascript/", "chap14.php");
// Sortie -> http://www.cybwarrior.com/langages/javascript/chap14.php
fixed()
Retourne la chaîne de caractères encadrée des balises <TT> et </TT>.

var Chaine = "Telex";

document.write(Chaine.fixed());// ecrit <TT>Telex</TT>
fontcolor(couleur)
Retourne la chaîne de caractères encadrée des balises <FONT color="couleur" et </FONT>, où
couleur est l’argument transmis à la méthode. Exemple :

var Chaine = "La couleur";

document.write(Chaine.fontcolor("RED"));    // <FONT color=RED>La couleur</FONT>
document.write(Chaine.fontcolor("#00FF00"));
fontsize(taille)
Retourne la chaîne de caractères encadrée des balises <FONT size="taille"> et </FONT>, où
taille est l’argument transmis à la méthode.

var Chaine = "Taille";

document.write(Chaine.fontsize(6));// <FONT size=6>Taille</FONT>
document.write(Chaine.fontsize("-1"));// <FONT size=-1>Taille</FONT>
indexOf(chaine, Index)
Recherche la chaine chaine dans l’objet à partir du caractère Index si celui ci est spécifié. Sinon, la
recherche s’effectue à partir du début de la chaîne.
En cas de succés, la méthode renvoi la position de chaine dans l’objet, sinon la valeur -1 est retournée :

var Chaine = "Joyeux Noël";

document.write(Chaine.indexOf("Noël"));// Sortie -> 7
document.write(Chaine.indexOf("Anniversaire"));// Sortie -> -1
italics()
Retroune la chaîne de caractères encadrée des balises <I> et </I>.

var Chaine = "Italique";

document.write(Chaine.italics());// ecrit <I>Italique</I>
lastIndexOf(chaine, Index)
Recherche chaine dans l’objet jusqu’au caractère spécifié par Index, si il est spécifié (jusqu’à la fin dans
le cas contraire.
En cas de succés, la méthode renvoi la position de chaine dans l’objet, sinon la valeur -1 est retournée :

var Chaine = "Joyeux Noël";

document.write(Chaine.lastIndexOf("Noël"));// Sortie -> 7
document.write(Chaine.lastIndexOf("Noël", 6));// Sortie -> -1
link(URL)
Retourne la chaîne de caractères encadrée des balises <A href="URL"> et </A>, où
url est l’argument transmis à la méthode.

var Chaine = "CybWarrior";

document.write(Chaine.link("http://www.cybwarrior.com/"));
// ecrit <A href=http://www.cybwarrior.com/>CybWarrior</A>
match(RegExp)
Recherche l’expression régulière RegExp dans la chaîne de caractères et retoure toutes les occurences trouvées dans
un tableau, ou bien null en cas d’echec :

var Chaine = "/langages/javascript/chap.14";
var Tableau = Chaine.search(/.*?\//g);

for(var i=0; i < Tableau.length; i++)document.write(Tableau[i] + "<br>");
replace(RegExp, Remplacement)
Remplace par la chaîne Remplacement toutes les occurences de l'expression régulière RegExp dans la chaîne de
caractères.

var Chaine = "Ta da da ta ga da ta ga da";

document.write(Chaine.replace(/da/gi, "DA"));
// Sortie -> Ta DA DA ta ga DA ta ga DA
search(RegExp)
Recherche l'expression régulière RegExp dans la chaîne de caractères et retourne la position de la première occurence ou
-1 en cas d'echec. Les expressions régulières seront étudiées plus en détails prochainement.

var Chaine = "aaaabbbbcccc";

document.write(Chaine.search(/b/));// Sortie -> 4
slice(deb, fin)
Retourne la chaîne de carctère située entre le caractère deb et le caractère fin. Si fin est omis,
slice renvoi les caractères jusqu'à la fin de la chaîne.

var Chaine = "Sad Hill";

document.write(Chaine.slice(4, 8));// Sortie -> Hill
split(RegExp)
"Decoupe" une chaîne de caractères en fonction de l'expression régulière RegExp et livre le résultat dans un tableau.

var Chaine = "Nom=Roosevelt;Prenom=Franklin";
var Tableau = Chaine.split(/;/);// Fractionnement selon le point virgule
for(var i=0; i < Tableau.length; i++){
Tableau[i]=Tableau[i].split(/=/);// Fractionnement selon =
for(var j=0; j < Tableau[i].length; j++)
document.write(Tableau[i][j] + "<br>");
}
strike()
Retroune la chaîne de caractères encadrée des balises <STRIKE> et </STRIKE>.

var Chaine = "Barré";

document.write(Chaine.strike());// ecrit <STRIKE>Barré</STRIKE>
sub()
Retroune la chaîne de caractères encadrée des balises <SUB> et </SUB>.

var Chaine = "Indice";

document.write(Chaine.sub());// ecrit <SUB>Indice</SUB>
substr(Index, len)
Retourne la chaîne de caractère située au caractère Index et de len caractères. Si len est omis,
substr renvoi les caractères jusqu'à la fin de la chaîne.

var Chaine = "Sad Hill";

document.write(Chaine.substr(4, 4));// Sortie -> Hill
sup()
Retroune la chaîne de caractères encadrée des balises <SUP> et </SUP>.

var Chaine = "Exposant";

document.write(Chaine.sup());// ecrit <SUP>Exposant</SUP>
toLowerCase()
Retourne la chaîne de caractères avec tout les caractères transformés en minuscules.

var Chaine = "Hello";

document.write(Chaine.toLowerCase());// Sortie -> hello
toUpperCase()
Retourne la chaîne de caractères avec tout les caractères transformés en majuscules.

var Chaine = "Hello";

document.write(Chaine.toUpperCase());// Sortie -> HELLO
Categories: JavaScript Tags: