 |
|
 |
 |
 |
 |
  | Crée un objet permettant de travailler avec une série de caractères. Syntaxe new String() new String(string) Les chaînes de caractères littérales prennent la forme suivante : 'stringText' "stringText" Paramètres chaîne N'importe quelle chaîne de caractères. stringText Une série de caractères correctement encodée. Description Les objets String sont créés en appelant le constructeur new String(). L'objet String encapsule le type de données primitif string de JavaScript en fournissant les méthodes décrites plus bas. La fonction globale String() peut également être appelée sans l'opérateur new pour créer une chaîne primitive. Les chaînes littérales dans le code JavaScript sont des chaînes primitives. Étant donné que JavaScript effectue automatiquement les conversions entre chaînes primitives et objets String, toute méthode de l'objet String peut être appelée sur une chaîne primitive. JavaScript convertira automatiquement la chaîne en un objet String temporaire, appellera la méthode, puis détruira l'objet temporaire. Par exemple, on peut utiliser la propriété String.length sur une chaîne créée de manière littérale : s_obj.length; // 3 s_prim.length; // 3 s_also_prim.length; // 3 'foo'.length; // 3 "foo".length; // 3 (Une chaîne littérale peut être délimitée par des guillemets simples ou doubles.) Les objets String peuvent être convertis en chaînes primitives à l'aide de String.valueOf(). Les chaînes primitives et les objets String renvoient des résultats différents lorsqu'ils sont évalués en JavaScript. Les chaînes primitives sont traitées comme du code source, tandis que les objets String sont traités comme un objet de séquence de caractères. Par exemple : s1 = "2 + 2"; // crée une chaîne primitive s2 = new String("2 + 2"); // crée un objet String eval(s1); // renvoie le nombre 4 eval(s2); // renvoie la chaîne "2 + 2" eval(s2.valueOf()); // renvoie le nombre 4 Accès à des caractères individuels Deux manières d'accéder à un caractère individuel dans une chaîne existent. La première est la méthode charAt : return 'cat'.charAt(1); // renvoie "a" La seconde manière est de traiter la chaîne comme s'il s'agissait d'un tableau, avec chaque indice correspondant à un caractère particulier : return 'cat'[1]; // renvoie "a" La seconde manière (traiter une chaîne comme un tableau) ne fait pas partie de la spécification ECMAScript, c'est une fonctionnalité de JavaScript. Dans les deux cas, il ne sera pas possible de modifier un caractère existant. Si l'on essaie de modifier un caractère via charAt, on obtient une erreur ; alors qu'en utilisant la méthode du tableau, aucune erreur n'est provoquée, mais la chaîne elle-même ne change pas. Comparaison de chaînes Les développeurs C connaissent la fonction strcmp() pour comparer des chaînes. En JavaScript, on utilisera simplement les opérateurs plus petit et plus grand : var a = "a"; var b = "b"; if (a < b) // true print(a + " est inférieur à " + b); else if (a > b) print(a + " est supérieur à " + b); else print(a + " et " + b + " sont égaux."); On peut arriver à un résultat similaire en utilisant la méthode localeCompare héritée par les instances String. Propriétés Pour les propriétés héritées par les instances de String consultez Propriétés des instances de String. prototype permet d'ajouter des propriétés à tous les objets String.
Propriétés héritées de Function.prototype caller, constructor, length, name
Méthodes Pour les méthodes héritées par les instances de String consultez Méthodes des instances de String. fromCharCode renvoie une chaîne créée en utilisant la séquence de valeurs Unicode fournie.
Méthodes héritées de Function.prototype apply, call, toSource, toString, valueOf Méthodes héritées de Object.prototype __defineGetter__, __defineSetter__, hasOwnProperty, isPrototypeOf, __lookupGetter__, __lookupSetter__, __noSuchMethod__, propertyIsEnumerable, unwatch, watch
Instances de chaînes Toutes les instances de String héritent de String.prototype. Les modifications de l'objet prototype String sont répercutées sur toutes les instances de String. === Propriétés === constructor Spécifie la fonction créant le prototype d'un objet. length Reflète la longueur de la chaîne. N Non standard Utilisée pour accéder au caractère en Nème position où N est un entier positif entre 0 et la valeur de length mois un. Ces propriétés sont en lecture seule. === Méthodes === ==== Méthodes non liées à HTML ==== charAt Renvoie le caractère à la position spécifiée. charCodeAt Renvoie un nombre indiquant la valeur Unicode du caractère à la position spécifiée. concat Combine le texte de deux chaînes et renvoie une nouvelle chaîne. indexOf Renvoie la position au sein de l'objet String appelant de la première occurrence de la valeur spécifiée, ou -1 si celle-ci n'est pas trouvée. lastIndexOf Renvoie la position au sein de l'objet String appelant de la dernière occurrence de la valeur spécifiée, ou -1 si celle-ci n'est pas trouvée. localeCompare Renvoie un nombre indiquant si une chaîne de référence vient avant, après ou est en position identique à la chaîne donnée dans l'ordre de tri. match Utilisée pour faire correspondre une expression rationnelle à une chaîne. quote Non standard Entoure la chaîne de guillemets doubles anglais ("""). replace Utilisée pour rechercher une correspondance entre une expression rationnelle et une chaîne, et pour remplacer la sous-chaîne correspondante par une nouvelle chaîne. search Exécute la recherche d'une correspondance entre une expression régulière et une chaîne spécifiée. slice Extrait une section d'une chaîne et renvoie une nouvelle chaîne. split Sépare un objet String en un tableau de chaînes en séparant la chaîne en plusieurs sous-chaînes. substr Renvoie les caractères d'une chaîne à partir de la position spécifiée et pour la longueur spécifiée. substring Renvoie les caractères d'une chaîne entre deux positions dans celle-ci. toLocaleLowerCase Les caractères de la chaîne seront convertis en minuscules selon la locale courante. Pour la plupart des langues, le résultat est identique à toLowerCase. toLocaleUpperCase Les caractères de la chaîne seront convertis en majuscules selon la locale courante. Pour la plupart des langues, le résultat est identique à toUpperCase. toLowerCase Renvoie la valeur de la chaîne appelante convertie en minuscules. toSource Non standard Renvoie une représentation littérale de l'objet ; celle-ci peut être utilisée pour créer un nouvel objet. Remplace la méthode Object.toSource. toString Renvoie une chaîne représentant l'objet spécifié. Remplace la méthode Object.toString. toUpperCase Renvoie la valeur de la chaîne appelante convertie en majuscules. valueOf Renvoie la valeur primitive de l'objet spécifié. Remplace la méthode Object.valueOf. ==== Méthodes d'encadrement HTML ====
Non standard Chacune des méthodes suivantes renvoie une copie de la chaîne entourée des balises HTML appropriés.
anchor <a name="name"> (cible hypertexte) big <big> blink <blink> bold <b> fixed <tt> fontcolor <font color="color"> fontsize <font size="size"> italics <i> link <a href="url"> (link to URL) small <small>. strike <strike> sub <sub> sup <sup> Ces méthodes sont relativement peu utiles, étant donné qu'elles ne fournissent qu'un petit sous-ensemble des balises et attributs HTML existants.
Méthodes héritées de Object.prototype __defineGetter__, __defineSetter__, hasOwnProperty, isPrototypeOf, __lookupGetter__, __lookupSetter__, __noSuchMethod__, propertyIsEnumerable, unwatch, watch
Exemples Exemple : extension d'instances de chaînes avec une méthode repeat L'exemple qui suit crée une méthode, str_rep, et utilise l'instruction String.prototype.repeat = str_rep pour ajouter cette méthode à tous les objets String. Toutes les instances de String auront alors cette méthode, même les objets déjà créés. L'exemple crée ensuite une méthode alternative et écrase la méthode précédente sur un des objets String à l'aide de l'instruction s1.repeat = fake_rep. La méthode str_rep des objets String restants n'est pas modifiée. var s1 = new String("a"); var s2 = new String("b"); var s3 = new String("c");
// Crée une méthode de répétition pour tous les objets String function str_rep(n) { var s = "", t = this.toString(); while (--n >= 0) { s += t } return s; }
String.prototype.repeat = str_rep;
s1a = s1.repeat(3); // renvoie "aaa" s2a = s2.repeat(5); // renvoie "bbbbb" s3a = s3.repeat(2); // renvoie "cc"
// Crée une méthode alternative et l'assigne à une variable String function fake_rep(n) { return "répète " + this + " " + n + " fois."; }
s1.repeat = fake_rep s1b = s1.repeat(1); // renvoie "répète a 1 fois." s2b = s2.repeat(4); // renvoie "bbbb" s3b = s3.repeat(6); // renvoie "cccccc" La fonction de cet exemple fonctionne également sur les objets String qui ne sont pas créés avec le constructeur String. Le code qui suit renvoie « zzz ». "z".repeat(3);
|
 |
 |
|


 |
 |
 |