2011-06-22 3 views
5

Je suis en train de remplacer la valeur de item avec des valeurs dans le tableau arr, mais je reçois seulement que si je l'utilise: arr [1], arr [2] .. si je laisse juste arr, renvoie abcdefg.Utiliser split/rejoindre pour remplacer une chaîne avec un tableau

Je suis php programmeur, j'ai une notion minimale avec JS, quelqu'un peut-il me donner une lumière?

var item = 'abcdefg'; 
var arr = new Array(); 
arr[1]="zzz"; 
arr[2]="abc"; 
var test = item.split(arr); 
alert(test.join("\n")); 
+1

S'il vous plaît être plus clair sur ce que vous essayez de faire. –

+0

Veuillez donner un exemple de ce que 'item' devrait contenir quand cela est terminé. Est-ce que 'item' devrait ressembler à' zzzabc' ou 'zzzdefg' ou à autre chose? – WesleyJohnson

+0

HMM renvoie l'élément de chaîne '1' à -> 'zzz' ou l'élément '2' à -> 'xxx' ... –

Répondre

7

Edit: substance ajoutée pour OP.

var item = 'Hello, 1, my name is 2.'; 
var arr = new Array(); 
arr [1] = 'admin'; 
arr [2] = 'guest'; 
for (var x in arr) 
    item = item.replace (x, arr[x]); 
alert(item); 

produit:

Hello, admin, my name is guest. 

Original:

Je suppose que vous voulez partager sur l'une des valeurs du tableau.

var item = '12zzz34abcdefg'; 
var arr = new Array(); 
arr[0]="zzz"; 
arr[1]="abc"; 
var test = item.split(new RegExp(arr.join("|"))); 
alert(test.join("\n")); 

produit

12 
34 
defg 
+0

Ce que je suis en train de faire est de remplacer les ID avec des noms, par exemple: id 1 - admin id 2 - invité id 3 - test1 id 4 - test2 Ces valeurs, je l'aurais dans un array (arr [1] = admin, arr [2] = invité, etc.), l'élément de valeur de chaîne, serait l'id, donc j'ai cherché l'id dans le tableau tableau et remplacer le nom. –

+0

vous devrez peut-être faire pour chaque élément dans le tableau, faire le remplacement. –

+0

pouvez-vous m'aider avec cela? :( –

2

de Split utilise des expressions régulières, si

"My String".split('S') == ["My ","tring"] 

Si vous essayez de remplacer une chaîne:

"abcdef".replace('abc','zzz') == "zzzdef" 
+0

Il utilise des expressions régulières, c'est-à-dire des chaînes '/ [az] + /' * ou *, c'est à dire '"/[az] +/"'. Le premier se sépare sur n'importe quel bloc de lettres minuscules, le second sur la chaîne littérale '/ [a-z] + /'. – wizzwizz4

Questions connexes