Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Changer un caractère dans une string

3 réponses
Avatar
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

3 réponses

Avatar
Mickaël Wolff
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 ;
}
}
Avatar
ast
"Mickaël Wolff" a écrit dans le message de
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
Avatar
SAM
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