Ich habe diese Saite
'john smith~123 Street~Apt 4~New York~NY~12345'
Mit JavaScript können Sie dies am schnellsten analysieren
var name = "john smith";
var street= "123 Street";
//etc...
javascript
string-split
ctrlShiftBryan
quelle
quelle
Laut ECMAScript6
ES6
besteht der saubere Weg darin, Arrays zu zerstören:Möglicherweise enthält die Eingabezeichenfolge zusätzliche Elemente. In diesem Fall können Sie den Rest-Operator verwenden, um ein Array für den Rest abzurufen oder sie einfach zu ignorieren:
Ich nahm eine schreibgeschützte Referenz für Werte an und verwendete die
const
Deklaration.Viel Spaß mit ES6!
quelle
const [name, , unit, ...others] = ...
Auch wenn dies nicht der einfachste Weg ist, können Sie dies tun:
Update für ES2015 mit Destrukturierung
quelle
keys
. Die zweite Ersetzungsfunktion verwendet[^~]+
, um jedes unterschiedliche Teil (z. B. '123 Street', 'Apt 4' usw.) abzugleichen und ruft die Funktion für jedes Teil auf und übergibt sie als Argument. Bei jedem Lauf nimmt die Funktion den ersten Schlüssel aus dem Schlüsselarray (entfernt ihn auch mit Array.unshift) und weist den Schlüssel und das Teil dem Adressobjekt zu.Sie sollten sich den Substrat oder Split von JavaScript ansehen , da dies keine wirklich für jQuery geeignete Aufgabe ist.
quelle
Nun, der einfachste Weg wäre so etwas wie:
quelle
Wenn Spliter gefunden wird, dann nur
Teile es auf
Andernfalls wird dieselbe Zeichenfolge zurückgegeben
quelle
Etwas wie:
Wird wahrscheinlich am einfachsten sein
quelle
split("~")
odersplit(/~/)
aber nichtsplit("/~/")
. Letzteres würde sich nur spalten"John/~/Smith"
und nicht"John~Smith"
.Sie können
split
den Text teilen.Alternativ können Sie auch
match
Folgendes verwendenDer reguläre Ausdruck stimmt
[^~]+
mit allen Zeichen außer überein~
und gibt die Übereinstimmungen in einem Array zurück. Sie können dann die Übereinstimmungen daraus extrahieren.quelle
str.split();
funktionierte nicht in Firefox, aber dies funktionierte sowohl in Chrome als auch in Firefox.str.split();
funktioniert in Firefox und allen gängigen Browsern .Zach hatte dieses Recht. Mit seiner Methode konnte man auch ein scheinbar "mehrdimensionales" Array erstellen. Ich habe ein kurzes Beispiel bei JSFiddle erstellt: http://jsfiddle.net/LcnvJ/2/
quelle
JavaScript: Konvertiert String in Array JavaScript Split
https://www.tutsmake.com/javascript-convert-string-to-array-javascript/
quelle
Dies
string.split("~")[0];
erledigt die Dinge.Quelle: String.prototype.split ()
Ein weiterer funktionaler Ansatz unter Verwendung von Curry und Funktionszusammensetzung.
Das erste wäre also die Split-Funktion. Das wollen wir machen
"john smith~123 Street~Apt 4~New York~NY~12345"
in dieser["john smith", "123 Street", "Apt 4", "New York", "NY", "12345"]
Jetzt können wir unsere spezielle
splitByTilde
Funktion nutzen. Beispiel:Um das erste Element zu erhalten, können wir den
list[0]
Operator verwenden. Lassen Sie uns einefirst
Funktion erstellen :Der Algorithmus lautet: durch den Doppelpunkt geteilt und dann das erste Element der angegebenen Liste erhalten. Wir können diese Funktionen also zusammenstellen, um unsere endgültige
getName
Funktion zu erstellen . Aufbau einercompose
Funktion mitreduce
:Und jetzt damit komponieren
splitByTilde
undfirst
funktionieren.quelle
Versuchen Sie es in Plain Javascript
quelle
Da die Frage der Aufteilung in Kommas auf diese Frage dupliziert wird, fügen Sie diese hier hinzu.
Wenn Sie auf ein Zeichen geteilt werden soll und auch zusätzliche Leerzeichen behandeln , die dieses Zeichen folgen könnte, die oft mit Komma geschieht, können Sie
replace
dannsplit
, wie folgt aus :quelle
Verwenden Sie diesen Code -
quelle