Frage

Ich möchte eine Zeichenfolge teilen, die wie folgt aussehen kann: word1; word2; word3, Word4, word5, word6.word7. etc.

Der String ist aus einer Ausgabe, die ich von einer PHP-Seite erhalten, die Daten aus einer Datenbank sammelt so die Zeichenfolge anders aussehen kann, sind aber die ersten Worte, immer getrennt mit; und dann, und die letzten Worte mit. (dot)

Ich möchte in der Lage sein, alle Wörter zu holen, die mit zum Beispiel endet; , oder . in einem Array. Hat jemand wissen, wie dies zu tun?

Ich möchte auch wissen, wie nur die Worte zu holen, die mit enden;

Die Funktion ends_with (string, Charakter) unten funktioniert, aber es nimmt keine Rücksicht auf Leerzeichen. Zum Beispiel, wenn das Wort Jonas Sand ist, druckt er nur Sand. Jeder weiß, wie dieses Problem beheben?

War es hilfreich?

Lösung

Wahrscheinlich

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

Der Schlüssel ist im regulären Ausdruck auf die String#split Methode übergeben. Die Zeichenklasse Operator [] ermöglicht es der reguläre Ausdruck zwischen den Zeichen mit darin enthaltenen auszuwählen.

Wenn Sie auf einem Zeichenfolge aufteilen müssen, die mehr als ein Zeichen enthält, können Sie die | verwenden zu unterscheiden.

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

Edit: Haben gründlich die Frage nicht gelesen. So etwas wie diese

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"]

Andere Tipps

var myString = word1;word2;word3,word4,word5,word6.word7;
var result = myString.split(/;|,|./);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top