★ wanayoo — archive 1999 https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/codePointAtNouvelle recherche | Portail wanayoo

Apply your JS skills to key Mozilla projects as an MDN Fellow! http://mzl.la/MDNFellowship

mozilla
Vos résultats de recherche

    String.prototype.codePointAt()

    Cette fonction, proposition pour ECMAScript 6 (Harmony), est expérimentale
    Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.
    Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

    Résumé

    La méthode codePointAt() renvoie un entier positif qui correspond au codet UTF-16 du caractère de la chaîne à la position donnée.

    Syntaxe

    str.codePointAt(pos)

    Paramètres

    pos
    La position de l'élément dans la chaîne de caractères dont on souhaite obtenir la valeur du codet.

    Description

    S'il n'y a pas d'élément à la position donnée, la valeur renvoyée sera undefined. Si ce n'est pas un élément représenté sur deux demi-codets (surrogate pair) UTF-16 et qui commence à pos, le codet de l'élément à l'indice pos est renvoyé.

    Exemple

    Utiliser codepointAt()

    'ABC'.codePointAt(1);          // 66
    '\uD800\uDC00'.codePointAt(0); // 65536
    
    'XYZ'.codePointAt(42); // undefined
    

    Prothèse d'émulation (polyfill)

    Le fragment de code suivant permet d'ajouter la méthode codePointAt() pour les chaînes de caractères (String). En effet, cette méthode fait partie de ECMAScript 6 et certains navigateurs peuvent ne pas proposer cette fonction nativement.

    /*! http://mths.be/codepointat v0.1.0 by @mathias */
    if (!String.prototype.codePointAt) {
    	(function() {
    		'use strict'; // utilisé pour utiliser `apply`/`call` avec `undefined`/`null`
    		var codePointAt = function(position) {
    			if (this == null) {
    				throw TypeError();
    			}
    			var string = String(this);
    			var size = string.length;
    			// `on transforme en entier`
    			var index = position ? Number(position) : 0;
    			if (index != index) { // mieux que `isNaN`
    				index = 0;
    			}
    			// on regarde si on est en dehors de la chaîne:
    			if (index < 0 || index >= size) {
    				return undefined;
    			}
    			// On récupère le premier codet
    			var first = string.charCodeAt(index);
    			var second;
    			if ( // on vérifie que ce n'est pas le début d'une surrogate pair
    				first >= 0xD800 && first <= 0xDBFF && // high surrogate
    				size > index + 1 // il y a un codet qui suit
    			) {
    				second = string.charCodeAt(index + 1);
    				if (second >= 0xDC00 && second <= 0xDFFF) { // low surrogate
    					// http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
    					return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;
    				}
    			}
    			return first;
    		};
    		if (Object.defineProperty) {
    			Object.defineProperty(String.prototype, 'codePointAt', {
    				'value': codePointAt,
    				'configurable': true,
    				'writable': true
    			});
    		} else {
    			String.prototype.codePointAt = codePointAt;
    		}
    	}());
    }
    

    Spécifications

    Spécification Statut Commentaires
    ECMAScript 6 (ECMA-262)
    La définition de 'String.prototype.codePointAt' dans cette spécification.
    Draft Définition initiale.

    Compatibilité des navigateurs

    Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari
    Support simple 41 29 (29) 11 pour Windows 10 Preview Pas de support Pas de support
    Fonctionnalité Android Chrome pour Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
    Support simple Pas de support Pas de support 29.0 (29) Pas de support Pas de support Pas de support

    Voir aussi

    Étiquettes et contributeurs liés au document

    Contributors to this page: SphinxKnight
    Dernière mise à jour par : SphinxKnight,
    Masquer la barre latérale