Am acest șir
Folosind JavaScript, ceea ce este cel mai rapid mod de a analiza acest lucru în
var street= "123 Street";
//etc...
Cu JavaScript [String.prototype.split
](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split funcția):
var fields = input.split('~');
var name = fields[0];
var street = fields[1];
// etc.
Nu't nevoie de jQuery.
var fields = s.split(/~/);
var name = fields[0];
var street = fields[1];
Potrivit ECMAScript6 ES6
, cel mai curat mod este distrugere de tablouri:
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
Ai putea avea elemente suplimentare în șirul de intrare. În acest caz, puteți folosi restul operator pentru a obține o matrice pentru restul sau doar le ignora:
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"]
Ar trebui citite doar de referință pentru valorile și folosit const
declarație.
Bucurați-vă de ES6!
Chiar dacă acest lucru nu este cel mai simplu mod, ai putea face acest lucru:
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"
}
Actualizare pentru ES2015, folosind destructurare
// 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
Dacă Spliter este găsit atunci numai
Împărțim
altceva reveni același șir
funcția SplitTheString(ResultStr) { dacă (ResultStr != null) { var SplitChars = '~'; dacă (ResultStr.indexOf(SplitChars) >= 0) { var DtlStr = ResultStr.split(SplitChars); var nume = DtlStr[0]; var stradă = DtlStr[1]; } } }
Puteți utiliza "split" pentru a împărți textul.
Ca o alternativă, puteți utiliza, de asemenea, "meci", după cum urmează
matches = str.match(/[^~]+/g);
console.log(matches);
document.write(matches);
Regex [^~]+
se va potrivi toate personajele, cu excepția ~
și a reveni la meciuri într-o matrice. Apoi, puteți extrage meciuri de la ea.
Zach avut acest drept unul.. folosind metoda lui ai putea face, de asemenea, un aparent "multi-dimensional" matrice.. am creat un exemplu rapid la JSFiddle http://jsfiddle.net/LcnvJ/2/
// 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(",");
Acest șir.split("~")[0];` devine lucruri de facut.
sursa: Șir de caractere.prototip.split()
O altă abordare funcțională folosind curry și funcție de compoziție.
Deci, primul lucru ar fi funcția split. Vrem să facem acest lucru "john smith~123 Strada~Apt 4~New York~NY~12345" în această
["john smith", "123 Strada", "Apt 4", "New York", "new YORK", "12345"]`
const splitByTilde = split('~');
Deci, acum ne putem folosi de specialitate splitByTilde funcția. Exemplu:
Pentru a obține primul element putem folosi lista[0]` operator. Las's a construi o "prima" funcția:
Algoritmul este: split de colon și apoi a obține primul element din lista dată. Deci, putem compune aceste funcții pentru a construi final getName funcția. Construirea unei
compune` funcția cu "reduce":
Și acum, folosind-o pentru a compune `splitByTilde " și " prima funcții.
let string = 'john smith~123 Street~Apt 4~New York~NY~12345';
getName(string); // "john smith"
var ar= [url,statu] = window.location.href.split("=");
Utilizați acest cod --
var str = "How are you doing today?";
var res = str.split("/");
}
Întrucât divizarea pe virgule întrebare este duplicat la această întrebare, adăugând că acest lucru aici.
Dacă doriți să împartă pe un caracter și, de asemenea, mâner extra spațiu în care ar putea să urmeze acest personaj, care de multe ori se întâmplă cu virgule, puteți folosi "înlocuiți" apoi pe "split", astfel:
var elemente = string.replace(/,\s+/, ",").split(',')
JavaScript: Conversia String-Array JavaScript Split
var result = str.split('-');
console.log(result);
document.getElementById("show").innerHTML = result;
<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/