var LaChaine = "ab\"cd"
alert (LaChaine.length) //
5 (a,b,",c et d)
Le \" est expliqué plus bas dans cette page
Attention: C'est bien .length et pas .length() !
Il suffit de remplacer charAt par charCodeAt :
var LaChaine = "abc"
alert (LaChaine.charCodeAt(0))
// Renvoie 97 (Caractère Unicode de a qui est
le 1er caractère)
Fonctionnement : substring prend le plus petit des 2 paramètres, et renvoie la chaîne de caractères qui va du plus petit au plus grand :
Pour avoir un seul caractère, il faut une différence de 1 entre le plus petit et le plus grand : Par exemple pour avoir le premier caractère, on extrait "du zérotième au premier caractère"
var X = "123456789"
alert (X.substring(1,1)) // rien
alert (X.substring(1,2)) // 2
alert (X.substring(1,3)) // 23
alert (X.substring(1,4)) //
234
alert (X.substring(4,1)) //
234 (aussi)
alert (X.substring(0,0)) // rien
alert (X.substring(0,1)) //
1 (premier caractère)
alert (X.substring(0,2)) // 12
alert (X.substring(10,15)) // rien
alert (X.substring(5,100)) // 6789 (les 4 derniers)
Permet de trouver la position d'une chaîne dans une autre. Attention : Les majuscules sont différentes des minuscules.
Si la recherche échoue, -1 est renvoyé
var LaChaine = "abcdefg"
alert (LaChaine.indexOf("cde"))
// 2
alert (LaChaine.indexOf("abc")) // 0
alert (LaChaine.indexOf("ABC")) // -1 (Case
sensitive)
alert (LaChaine.indexOf("xxx")) // -1 (Inexistant)
J'ai trouvé la fonction search qui a l'air d'être similaire (à tester en cas de problèmes avec IndexOf)
La fonction corrélative lastIndexOf permet de retrouver la DERNIERE occurrence d'une chaîne dans une autre :
var LaChaine = "abcabcabcABC"
alert (LaChaine.lastIndexOf("abc"))
// 6 (0,1,2,3,4,5,6 (7ème caractère))
Par exemple pour remplacer "Le chien noir" par "Le chat noir", nous procéderions comme ceci :
var LaChaine = "Le chien
noir"
LaChaine = LaChaine.replace("chien",
"chat")
alert (LaChaine) // Le chat noir
La concaténation consiste à coller une chaîne de caractères après une autre
var str1 = "abc"
var str2 = "def"
var s = str1.concat(str2)
alert (s) // abcdef
var LaChaine = "abcde"
alert ("*" + LaChaine +
"*") // *abcde*
Il s'agit de séparer différents mots d'une phrase par exemple : C'est à dire qu'à chaque fois qu'on rencontre un espace, il va falloir stocker le mot dans un élément de tableau :
var LaChaine = " Le
chat boit."
var TableauResultant
TableauResultant = LaChaine.split(" ")
// nous séparons à chaque espace "
"
alert (TableauResultant [0]) // rien
(le premier espace)
alert (TableauResultant [1]) // Le
alert (TableauResultant [2]) // chat
alert (TableauResultant [3]) // boit.
alert (TableauResultant [4]) // undefined
ATTENTION : ces 2 fonctions ne sont pas issues de la bibliothèque Math !
alert(parseFloat("1.6"))
// 1.6
alert(parseInt("1.6")) //
1
alert(parseFloat("1.6xxx"))
// 1.6
alert(parseFloat("x1.6xxx"))
// NaN
Il est parfois nécessaire d'inclure dans des chaînes de caractères des caractères spéciaux, tels que des guillemets justement... C'est dur puisque une chaîne de caractère est encadrée de guillemets :
alert ("Les "nerds" sont des informaticiens")
donnerait une erreur, à cause des guillemets dans les guillemets. On doit remplacer ces guillemets par leur caractère de subsitution : \" (des guillemets précédés d'un \). La commande suivante fonctionne très bien :
alert ("Les \"nerds\" sont des informaticiens")
Liste des caractères de substitution :
\b : espace
arrière
\f : saut de page
\n : saut de ligne
\r : retour chariot
\t : tabulation
\' : apostrophe
\" : guillemet
\\ : backslash
alert ("Les nerds\r sont des informaticiens")
Affiche cette phrase sur 2 lignes.
Comme JavaScript travaille main dans la main avec HTML, certaines fonctions peuvent automatiquement ajouter les balises nécessaires pour l'affichage en tel ou tel format :
Permettent d'écrire en gros, comme ceci
var LaChaine = "abc"
LaChaine = LaChaine.big() //
Contient maintenant : <BIG>abc</BIG>
alert (LaChaine)
Ce ne serait évidemment pas bien compliqué de substituer cette fonction toute simple par un concat, mais bon... elle existe, autant l'utiliser...
La méthode est strictement la même qu'avec big, mais la fonction s'appelle bold, qui va rajouter les balises <B> et </B>
Voici finalement la liste des balises HTML utilisable avec JavaScript
Balise | Explication | Exemple | Résultat théorique | Résultat visible |
anchor("NomAncre") | Place un point d'ancrage local dans la feuille HTML | var strVariable
= "abc"; strVariable.anchor("UneAncre"); |
<A NAME="UneAncre">abc</A> | abc |
big() | Ecris en plus gros | var
strVariable = "abc"; strVariable.big( ); |
<BIG>abc</BIG> | abc |
bold() | Ecris en gras | var strVariable
= "abc" strVariable.bold( ) |
<B>abc</B>. | abc |
fixed() | ? | var strVariable
= "abc"; strVariable.fixed( ); |
<TT>abc</TT> | abc |
fontcolor("NameColor") | Ecris en couleur Les noms de couleur prédéfinis valides varient selon votre hôte JScript (navigateur, serveur, etc.) |
var strVariable
= "abc"; strVariable.fontcolor("red"); |
<FONT COLOR="RED">abc</FONT>. | abc |
italics() | Ecris en italiques | var strVariable
= "abc"; strVariable.italics( ); |
<I>abc</I> | abc |
link("http://www.NomDuLien.com") | Crée un lien hypertexte | var strVariable
= "Info 3000"; strVariable.link("http://www.info-3000.com.com"); |
<A HREF="http://www.info-3000.com">Info 3000 </A> | Info 3000 |
small() | écrit en petit | var strVariable
= "abc"; strVariable.small( ) |
<SMALL>abc</SMALL> | abc |
strike() | écrit en barré | var strVariable
= "abc"; strVariable.strike( ) |
<STRIKE>abc</STRIKE> | |
sub() | écrit en indice | var strVariable
= "abc"; strVariable.sub( ); |
<SUB>abc</SUB> | abc |
sup() | écrit en exposant (superscript) - (je suppose) | var strVariable
= "abc"; strVariable.sup( ); |
<SUP>abc</SUP>. | abc |
Dans le code source HTML, on constate qu'il y a peu ou prou de caractères spéciaux tels que é, qui est plutôt représenté par %E9. Les fonctions escape et unescape permettent de transformer les chaînes de caractères de l'un dans l'autre mode :
alert(escape("éléphant"))
// %E9l%E9phant
alert(unescape("%E9l%E9phant"))
// éléphant
Les objets String peuvent être créés implicitement au moyen d'opérateurs sur chaîne. Les objets String créés de cette manière (appelés chaînes standard) sont traités différemment des objets String créés au moyen de l'opérateur new. Tous les opérateurs sur chaîne partagent un seul objet chaîne globale. Par conséquent, si une propriété est ajoutée à un opérateur de chaîne, elle est disponible pour tous les objets chaîne standard :
var alpha, beta
alpha = "Ceci est une chaîne"
beta = "Ceci est aussi une chaîne"
alpha.test
= 10
Dans cet exemple, test est à présent défini pour beta et pour tous les opérateurs sur chaîne à venir. Dans l'exemple suivant, cependant, les propriétés ajoutées sont traitées différemment :
var gamma, delta
gamma = new String("Ceci est une
chaîne")
delta = new String("Ceci est aussi
une chaîne")
gamma.test = 10
Dans ce cas, test n'est pas défini pour delta. Chaque objet String déclaré comme un nouvel (new) objet String possède son propre jeu de membres. C'est le seul cas où les objets String et les opérateurs sur chaîne sont traités différemment.