Changer un caractère dans une string

Le
ast
bonjour,

soit une chaine s = "0000000000"

comment remplacer l'un des zeros par un "un"
à une position donnée ?

J'ai passé en revue toutes les méthodes de string
et rien ne convient.

merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Mickaël Wolff
Le #23113371
On 11/02/11 10:56, ast wrote:
J'ai passé en revue toutes les méthodes de string
et rien ne convient.



Ce n'est pas possible. Une chaîne de caractères est immutable en
Javascript. Il faut créer une nouvelle chaîne à partir de la chaîne que
tu veux modifier. Ou encore, tu peux créer un objet qui enveloppe la
chaîne si tu veux conserver une référence.

// Par exemple (et c'est un exemple, inefficace et à adapter en
// fonction des besoins) :
var MutableString = function()
{
var actual = arguments[0] || '' ;

this.setAt = function(offset, char)
{
if(char.length != 1) throw 'Too much or too few to insert' ;
if(offset > actual.length) throw 'Offset overrun' ;

var new_value = actual.slice(0, offset) ;
new_value += char ;
new_value += actual.slice(offset + 1) ;
actual = new_value ;
return this ;
}

this.valueOf = function()
{
return actual ;
}
}
ast
Le #23113451
"Mickaël Wolff" news:4d551da6$0$10060$
On 11/02/11 10:56, ast wrote:
J'ai passé en revue toutes les méthodes de string
et rien ne convient.



Ce n'est pas possible. Une chaîne de caractères est immutable en Javascript. Il faut créer une
nouvelle chaîne à partir de la chaîne que tu veux modifier. Ou encore, tu peux créer un objet qui
enveloppe la chaîne si tu veux conserver une référence.



ok merci
SAM
Le #23113461
Le 11/02/11 11:56, ast a écrit :
bonjour,

soit une chaine s = "0000000000"

comment remplacer l'un des zeros par un "un"
à une position donnée ?

J'ai passé en revue toutes les méthodes de string
et rien ne convient.



javascript:

function remplace(chaine, position, caractere) {
return chaine.substring(0,position-1) + caractere +
chaine.substring(position);
};

alert(remplace('0000000000', 2, '1'));

alert(remplace("l'éléphant", 2, 'es '));


--
Stéphane Moriaux avec/with iMac-intel
Publicité
Poster une réponse
Anonyme