Einfache Javascript Frage?
Hi,
mein Problem ist, dass ich ".p Star Walking" hernehmen möchte um den Song "Star Walking - LilNasX" abzuspielen. Leider gibt die Konsole nur "star" aus statt "starwalking" oder "star-walking". Kann mir jemand sagen, wie ich die Leerzeichen zu einem Bindestrich umwandeln kann, oder sie gar löschen kann? Ich bin leider nicht so gut in JavaScript. Hier ist mein Code:
if (message.author.bot || !message.content.startsWith('.p')) return;
const args = message.content.slice(3).trim().split(' ');
const command = args.shift().toLowerCase();
console.log(command);
2 Antworten
Das Problem liegt darin, das du nach Leerzeichen trennst, sprich "Star Walking" wird auch entsprechend getrennt. In deinem Fall müsstest du dann zwei Array Elemente ausgeben oder nicht nach Leerzeichen trennen sondern einfach ".p " Vorne entfernen
Beispielsweise mit der Replace oder Slice Methode
https://www.geeksforgeeks.org/how-to-remove-a-character-from-string-in-javascript/
Die Replace Methode kann aber glaube ich keine Leerzeichen, sondern nur Zeichen ersetzen, oder?
Suche einfach nach dem ersten Leerzeichen und bilde von da an ab den Substring:
const source = ".p Star Walking";
const result = source.substring(source.indexOf(" ") + 1);
console.log(result); // "Star Walking"
Für den Vergleich mit Star Walking - LilNasX würde die startsWith-Methode genügen:
if ("Star Walking - LilNasX".startsWith(result)) {
// ...
}
Wenn hierbei die Groß-/Kleinschreibung unterschiedlich sein kann, würde ich beide Zeichenketten zuvor mit toLowerCase (oder toLocaleLowerCase) transformieren.
if ("Star Walking - LilNasX".toLowerCase().startsWith(result.toLowerCase())) {
// ...
}
Zum Ersetzen von Zeichen kannst du die replace-Methode einsetzen.
const sentence = "Hello, beautiful world!";
const result = sentence.replace(/ /g, "");
console.log(result); // "Hello,beautifulworld!"
Kannst du mir sagen, wie ich das ".p " Vorne entfernen kann und trotzdem die Leerzeichen durch "-" ersetzen kann?