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...
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...
Antworten:
Mit der JavaScript- String.prototype.split
Funktion:
var input = 'john smith~123 Street~Apt 4~New York~NY~12345';
var fields = input.split('~');
var name = fields[0];
var street = fields[1];
// etc.
Sie brauchen jQuery nicht.
var s = 'john smith~123 Street~Apt 4~New York~NY~12345';
var fields = s.split(/~/);
var name = fields[0];
var street = fields[1];
Laut ECMAScript6 ES6
besteht der saubere Weg darin, Arrays zu zerstören:
const input = 'john smith~123 Street~Apt 4~New York~NY~12345';
const [name, street, unit, city, state, zip] = input.split('~');
console.log(name); // john smith
console.log(street); // 123 Street
console.log(unit); // Apt 4
console.log(city); // New York
console.log(state); // NY
console.log(zip); // 12345
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:
const input = 'john smith~123 Street~Apt 4~New York~NY~12345';
const [name, street, ...others] = input.split('~');
console.log(name); // john smith
console.log(street); // 123 Street
console.log(others); // ["Apt 4", "New York", "NY", "12345"]
Ich nahm eine schreibgeschützte Referenz für Werte an und verwendete die const
Deklaration.
Viel Spaß mit ES6!
const [name, , unit, ...others] = ...
Auch wenn dies nicht der einfachste Weg ist, können Sie dies tun:
var addressString = "~john smith~123 Street~Apt 4~New York~NY~12345~",
keys = "name address1 address2 city state zipcode".split(" "),
address = {};
// clean up the string with the first replace
// "abuse" the second replace to map the keys to the matches
addressString.replace(/^~|~$/g).replace(/[^~]+/g, function(match){
address[ keys.unshift() ] = match;
});
// address will contain the mapped result
address = {
address1: "123 Street"
address2: "Apt 4"
city: "New York"
name: "john smith"
state: "NY"
zipcode: "12345"
}
Update für ES2015 mit Destrukturierung
const [address1, address2, city, name, state, zipcode] = addressString.match(/[^~]+/g);
// The variables defined above now contain the appropriate information:
console.log(address1, address2, city, name, state, zipcode);
// -> john smith 123 Street Apt 4 New York NY 12345
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.
Wenn Spliter gefunden wird, dann nur
Teile es auf
Andernfalls wird dieselbe Zeichenfolge zurückgegeben
function SplitTheString(ResultStr) { if (ResultStr != null) { var SplitChars = '~'; if (ResultStr.indexOf(SplitChars) >= 0) { var DtlStr = ResultStr.split(SplitChars); var name = DtlStr[0]; var street = DtlStr[1]; } } }
Etwas wie:
var divided = str.split("/~/");
var name=divided[0];
var street = divided[1];
Wird wahrscheinlich am einfachsten sein
split("~")
oder split(/~/)
aber nicht split("/~/")
. 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 verwenden
var str = 'john smith~123 Street~Apt 4~New York~NY~12345';
matches = str.match(/[^~]+/g);
console.log(matches);
document.write(matches);
Der 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.
str.split();
funktionierte nicht in Firefox, aber dies funktionierte sowohl in Chrome als auch in Firefox.
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/
// array[0][0] will produce brian
// array[0][1] will produce james
// array[1][0] will produce kevin
// array[1][1] will produce haley
var array = [];
array[0] = "brian,james,doug".split(",");
array[1] = "kevin,haley,steph".split(",");
JavaScript: Konvertiert String in Array JavaScript Split
var str = "This-javascript-tutorial-string-split-method-examples-tutsmake."
var result = str.split('-');
console.log(result);
document.getElementById("show").innerHTML = result;
<html>
<head>
<title>How do you split a string, breaking at a particular character in javascript?</title>
</head>
<body>
<p id="show"></p>
</body>
</html>
https://www.tutsmake.com/javascript-convert-string-to-array-javascript/
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"]
const split = (separator) => (text) => text.split(separator);
const splitByTilde = split('~');
Jetzt können wir unsere spezielle splitByTilde
Funktion nutzen. Beispiel:
splitByTilde("john smith~123 Street~Apt 4~New York~NY~12345") // ["john smith", "123 Street", "Apt 4", "New York", "NY", "12345"]
Um das erste Element zu erhalten, können wir den list[0]
Operator verwenden. Lassen Sie uns eine first
Funktion erstellen :
const first = (list) => list[0];
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 einer compose
Funktion mit reduce
:
const compose = (...fns) => (value) => fns.reduceRight((acc, fn) => fn(acc), value);
Und jetzt damit komponieren splitByTilde
und first
funktionieren.
const getName = compose(first, splitByTilde);
let string = 'john smith~123 Street~Apt 4~New York~NY~12345';
getName(string); // "john smith"
//basic url=http://localhost:58227/ExternalApproval.html?Status=1
var ar= [url,statu] = window.location.href.split("=");
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
dann split
, wie folgt aus :
var items = string.replace(/,\s+/, ",").split(',')
Verwenden Sie diesen Code -
function myFunction() {
var str = "How are you doing today?";
var res = str.split("/");
}