Wie kann ich eine Zeichenfolge aufgeteilt, die verschiedene Zeichen enthält?
-
18-09-2019 - |
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?
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(/;|,|./);