Question

Je veux diviser une chaîne qui peut ressembler à ceci: mot1, mot2, mot3, word4, word5, word6.word7. etc.

La chaîne est d'une sortie que je reçois d'une page php qui collecte des données à partir d'une base de données pour la chaîne peut être différent, mais les premiers mots sont toujours séparés par; puis, et les derniers mots avec point (.)

Je veux être en mesure d'aller chercher tous les mots qui se termine avec, par exemple; , ou . dans un tableau. Est-ce que quelqu'un sait comment faire cela?

Je voudrais aussi savoir comment récupérer uniquement les mots qui se termine par;

La fonction ends_with (string, character) ci-dessous des œuvres, mais il ne tient pas à l'égard des espaces. Par exemple, si le mot est Jonas sable, il imprime seulement Sand. Tout le monde sait comment résoudre ce problème?

Était-ce utile?

La solution

Probablement

var string = "word1;word2;word3,word4,word5,word6.word7";
var array = string.split(/[;,.]/);
// array = ["word1", "word2", "word3", "word4", "word5", "word6", "word7"]

La clé est dans l'expression régulière passée à la méthode String#split. L'opérateur de classe de caractères [] permet l'expression régulière de choisir entre les caractères contenus avec elle.

Si vous avez besoin de partager sur une chaîne qui contient plus d'un caractère, vous pouvez utiliser le | à se différencier.

var array = string.split(/;|,|./) // same as above

Modifier N'a pas lu à fond la question. Quelque chose comme ceci

var string = "word1;word2;word3,word4,word5,word6.word7";

function ends_with(string, character) {
  var regexp = new RegExp('\\w+' + character, 'g');
  var matches = string.match(regexp);
  var replacer = new RegExp(character + '$');
  return matches.map(function(ee) {
    return ee.replace(replacer, '');
  });
}
// ends_with(string, ';') => ["word1", "word2"]

Autres conseils

var myString = word1;word2;word3,word4,word5,word6.word7;
var result = myString.split(/;|,|./);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top