J'ai cette variable javascript suivante.

var data = "ashley, andy, juana"

Je veux que les données ci-dessus ressemblent à ceci.

var data = "Sports_ashley, Sports_andy, Sports_juana"

Il doit être de nature dynamique. n'importe quel nombre de virgules peut être présent dans cette variable.

Quelqu'un peut-il me laisser un moyen facile d'y parvenir s'il vous plaît.

0
Patrick 8 août 2016 à 22:00

3 réponses

Meilleure réponse

L'utilisation de .replace devrait fonctionner pour ajouter des sports avant chaque virgule. Ci-dessous, j'ai inclus un exemple.

var data = data.replace(/,/g , ", Sports_");

Dans cet exemple, l'utilisation de RegExp avec l'indicateur g remplacera toutes les virgules par Sports, au lieu de la première occurrence seulement.

Ensuite, à la fin, vous devriez simplement pouvoir ajouter Sports à la fin comme ça.

data = "Sports_" + data;
2
Charlie Fish 8 août 2016 à 19:15

Probablement exagéré, mais voici une solution générique

function sportify(data) {
  return data
    .split(/\s*,\s*/g) //splits the string on any coma and also takes out the surrounding spaces
    .map(function(name) { return "Sports_" + name } ) //each name chunk gets "Sport_" prepended to the end
    .join(", "); //combine them back together
  }

console.log(sportify("ashley, andy, juana"));
console.log(sportify("ashley   , andy,     juana"));

String.replace ()

Array.map ()

Array.join ()

EDIT: mise à jour avec la nouvelle version de l'OP

2
VLAZ 8 août 2016 à 19:16

Utilisez une expression régulière pour remplacer toutes les occurrences d'un , ou le début de la chaîne en utilisant String#replace()

var input = "ashley, andy, juana"
var output = input.replace(/^|,\s*/g, "$&Sports_");
console.log(output);
2
4castle 8 août 2016 à 19:26