У меня есть эта строка
'john smith~123 Street~Apt 4~New York~NY~12345'
Используя JavaScript, какой самый быстрый способ разобрать это в
var name = "john smith";
var street= "123 Street";
//etc...
javascript
string-split
ctrlShiftBryan
источник
источник
Согласно ECMAScript6
ES6
, чистым способом является деструктурирование массивов:У вас могут быть дополнительные элементы во входной строке. В этом случае вы можете использовать оператор rest, чтобы получить массив для остальных или просто проигнорировать их:
Я предполагал доступную только для чтения ссылку на значения и использовал
const
объявление.Наслаждайтесь ES6!
источник
const [name, , unit, ...others] = ...
Хотя это не самый простой способ, вы можете сделать это:
Обновление для ES2015, используя деструктуризацию
источник
keys
. Вторая функция замены используется[^~]+
для сопоставления каждой отдельной части (например, «123 Street», «Apt 4» и т. Д.) И вызывает функцию для каждой части, передавая ее в качестве аргумента. При каждом запуске функция берет первый ключ из массива ключей (также удаляя его с помощью Array.unshift) и назначает ключ и деталь объекту адреса.Возможно, вы захотите взглянуть на JavaScript в substr или split , поскольку на самом деле эта задача не подходит для jQuery.
источник
ну, проще всего было бы что-то вроде:
источник
Если найден Spliter, то только
Раздели это
еще вернуть ту же строку
источник
Что-то вроде:
Вероятно, будет проще
источник
split("~")
или нет,split(/~/)
но нетsplit("/~/")
. Последний бы только раскололся"John/~/Smith"
и нет"John~Smith"
.Вы можете использовать,
split
чтобы разделить текст.В качестве альтернативы, вы также можете использовать
match
как следоватьРегулярное выражение
[^~]+
будет соответствовать всем символам, кроме~
и возвращает совпадения в массиве. Затем вы можете извлечь спички из него.источник
str.split();
не работал в Firefox, но это работало как в Chrome, так и в Firefox.str.split();
работает в Firefox и во всех основных браузерах .Зак сделал это правильно ... используя его метод, вы также можете создать, казалось бы, "многомерный" массив ... Я создал быстрый пример на JSFiddle http://jsfiddle.net/LcnvJ/2/
источник
JavaScript: преобразование строки в массив JavaScript
https://www.tutsmake.com/javascript-convert-string-to-array-javascript/
источник
Это
string.split("~")[0];
делает вещи.источник: String.prototype.split ()
Еще один функциональный подход с использованием карри и функции композиции.
Поэтому первым делом будет функция разделения. Мы хотим сделать это
"john smith~123 Street~Apt 4~New York~NY~12345"
в этом["john smith", "123 Street", "Apt 4", "New York", "NY", "12345"]
Так что теперь мы можем использовать нашу специализированную
splitByTilde
функцию. Пример:Чтобы получить первый элемент, мы можем использовать
list[0]
оператор. Давайте построимfirst
функцию:Алгоритм: разделить двоеточием и затем получить первый элемент из данного списка. Таким образом, мы можем составить эти функции для построения нашей конечной
getName
функции. Построениеcompose
функции с помощьюreduce
:А теперь использую его для составления
splitByTilde
иfirst
функций.источник
Попробуйте в простом Javascript
источник
Поскольку вопрос о разделении на запятые дублируется в этом вопросе, добавьте его здесь.
Если вы хотите разделить на характер , а также обрабатывать дополнительные пробелы , которые могли бы следовать этому характер, который часто случается с запятыми, вы можете использовать
replace
тоsplit
, как это:источник
Используйте этот код -
источник