Saya punya string ini
'john smith~123 Street~Apt 4~New York~NY~12345'
Menggunakan JavaScript, apa cara tercepat untuk menguraikannya
var name = "john smith";
var street= "123 Street";
//etc...
javascript
string-split
ctrlShiftBryan
sumber
sumber
Menurut ECMAScript6
ES6
, cara bersih adalah merusak susunan array:Anda mungkin memiliki item tambahan dalam string input. Dalam hal ini, Anda bisa menggunakan operator sisanya untuk mendapatkan array untuk sisanya atau mengabaikannya:
Saya menduga referensi hanya baca untuk nilai dan menggunakan
const
deklarasi.Nikmati ES6!
sumber
const [name, , unit, ...others] = ...
Meskipun ini bukan cara paling sederhana, Anda bisa melakukan ini:
Pembaruan untuk ES2015, menggunakan penghancuran
sumber
keys
. Fungsi ganti kedua digunakan[^~]+
untuk mencocokkan setiap bagian yang berbeda (yaitu '123 Street', 'Apt 4', dll) dan memanggil fungsi untuk masing-masing bagian, meneruskannya sebagai argumen. Pada setiap menjalankan, fungsi mengambil kunci pertama dari array kunci (juga menghapusnya menggunakan Array.unshift) dan menetapkan kunci dan bagian ke objek alamat.Anda ingin melihat substr atau split JavaScript , karena ini sebenarnya bukan tugas yang cocok untuk jQuery.
sumber
baik, cara termudah akan menjadi sesuatu seperti:
sumber
Jika Spliter ditemukan maka hanya
Membaginya
lain mengembalikan string yang sama
sumber
Sesuatu seperti:
Mungkin akan menjadi yang paling mudah
sumber
split("~")
atausplit(/~/)
tidaksplit("/~/")
. Yang terakhir hanya akan terpecah"John/~/Smith"
dan tidak"John~Smith"
.Anda dapat menggunakannya
split
untuk membagi teks.Sebagai alternatif, Anda juga bisa menggunakan
match
sebagai berikutRegex
[^~]+
akan mencocokkan semua karakter kecuali~
dan mengembalikan kecocokan dalam array. Anda kemudian dapat mengekstrak kecocokan dari itu.sumber
str.split();
tidak berfungsi di Firefox, tetapi ini berfungsi baik di Chrome dan Firefox.str.split();
berfungsi di Firefox dan semua peramban utama .Zach memiliki hak ini .. menggunakan metodenya, Anda juga bisa membuat array yang tampaknya "multi-dimensi" .. Saya membuat contoh cepat di JSFiddle http://jsfiddle.net/LcnvJ/2/
sumber
JavaScript: Konversi String ke Array JavaScript Split
https://www.tutsmake.com/javascript-convert-string-to-array-javascript/
sumber
Ini
string.split("~")[0];
menyelesaikan sesuatu.sumber: String.prototype.split ()
Pendekatan fungsional lain menggunakan kari dan komposisi fungsi.
Jadi, hal pertama adalah fungsi split. Kami ingin membuat ini
"john smith~123 Street~Apt 4~New York~NY~12345"
menjadi ini["john smith", "123 Street", "Apt 4", "New York", "NY", "12345"]
Jadi sekarang kita dapat menggunakan
splitByTilde
fungsi khusus kami . Contoh:Untuk mendapatkan elemen pertama kita bisa menggunakan
list[0]
operator. Mari kita membangunfirst
fungsi:Algoritma ini adalah: dibagi dengan titik dua dan kemudian mendapatkan elemen pertama dari daftar yang diberikan. Jadi kita dapat menyusun fungsi-fungsi itu untuk membangun
getName
fungsi akhir kita . Membanguncompose
fungsi denganreduce
:Dan sekarang menggunakannya untuk menulis
splitByTilde
danfirst
fungsi.sumber
Coba di Javascript Biasa
sumber
Karena pertanyaan pemisahan pada koma digandakan untuk pertanyaan ini, tambahkan ini di sini.
Jika Anda ingin membagi pada karakter dan juga menangani spasi tambahan yang mungkin mengikuti karakter itu, yang sering terjadi dengan koma, Anda dapat menggunakan
replace
kemudiansplit
, seperti ini:sumber
Gunakan kode ini -
sumber