Ich habe IDs, die so aussehen: 185-51-671 aber sie können auch Buchstaben am Ende haben, 175-1-7b
Ich möchte nur die Bindestriche als Vorverarbeitungsschritt entfernen. Zeigen Sie mir einige coole Möglichkeiten, dies in Javascript zu tun? Ich denke, es gibt wahrscheinlich einige Fragen wie diese, aber ich bin gespannt, welche Optimierungen die Leute für “nur Bindestriche” finden werden.
Vielen Dank!
Bearbeiten: Ich verwende jQuery, also denke ich, dass .replace(a,b) den Trick macht (ersetzt a durch b)
numberNoHyphens = number.replace("-","");
noch andere alternativen?
edit #2:
Also, nur für den Fall, dass sich jemand fragt, die richtige Antwort war
numberNoHyphens = number.replace(/-/g,"");
und Sie brauchen das “g”, das der Musterschalter oder das “globale Flag” ist, weil
numberNoHyphens = number.replace(/-/,"");
passt nur den ersten Bindestrich an und ersetzt ihn
Sie müssen einschließen die Weltflagge:
var str="185-51-671";
var newStr = str.replace(/-/g, "");
Das ist nicht schneller, aber
str.split('-').join('');
sollte auch funktionieren.
Ich habe einen jsperf-Test eingerichtet, wenn jemand seine Methoden hinzufügen und vergleichen möchte, aber es ist unwahrscheinlich, dass irgendetwas schneller als der ist replace
Methode.
http://jsperf.com/remove-hyphens-from-string
var str="185-51-671";
str=str.replace(/-/g,'');
Kommt viel leichter rein String.prototype.replaceAll()
. Überprüfen Sie die Browserunterstützung für die eingebaute Methode.
const str="185-51-671";
console.log(str.replaceAll('-', ''));
Bei einigen dieser Antworten wurden vor der Bearbeitung nicht alle Bindestriche entfernt. Sie müssten verwenden .replaceAll("-","")
In Tidyverse gibt es mehrere Funktionen, die Ihren Anforderungen entsprechen könnten. Konkret würde ich verwenden str_remove
das in einer Zeichenfolge das Geberzeichen durch eine leere Zeichenfolge (“”) ersetzt und es effektiv entfernt (Überprüfen Sie hier die Dokumentation). Beispiel für seine Verwendung:
str_remove(x, '-')
Sie müssen den Titel Ihrer Frage nicht mit kommentieren [solved] – Dies wird impliziert, indem Sie die Antwort, die Ihr Problem gelöst hat, mit einem grünen Häkchen versehen. Fragen mit akzeptierten Antworten unterscheiden sich auf StackOverflow visuell von Fragen ohne akzeptierte Antwort.
– Matt
1. Juni 2011 um 17:59 Uhr