Javascript.RU

split

Синтаксис

var arr = str.split([separator][, limit]);

Аргументы

separator
регулярное выражение или строка, по которой делить str
limit
максимальное количество кусков, на которые может быть разбита строка

Описание, примеры

Метод split возвращает новый массив.

Строка бьется по separator, при разбивании separator пропадает:

arr = "a,b,c".split(',')  // массив ["a", "b", "c"]

Если separator не указан или совпадений нет, то возвращаемый массив состоит из одного элемента - исходной строки.

Если separator является регулярным выражением со вложенными скобками, то каждый раз при совпадении separator все результаты захвата скобками, включая undefined результаты, добавляются в выходной массив.

Если вызывающая строка пуста, то split возвращает массив из одной пустой строки, а не пустой массив.

Следующий пример делит по ',' и убирает лишние пробелы вокруг запятой.

Пример: по регулярному выражению
var tags = "Лето, зима, осень 2009 года"
var re = /\s*,\s*/
var tagList = tags.split(re);
alert(tagList) //  ["Лето", "зима", "осень 2009 года"]
При делении с ограничением limit - элементы массива свыше limit будут отброшены.

Это поведение отличается от принятого во многих языках програмирования.

Пример: Ограничение массива
var str ="a b с d"
str.split(' ',2)  
// ["a", "b"], а не ["a" "b c d"]

Следующий пример иллюстрирует добавление в массив результатов захвата вложенными скобками.

Пример: Вложенные скобки
var myString = "Hello 1 word. Sentence number 2."
var splits = myString.split(/(\d)/)
// splits =  ["Hello ", "1", " word. Sentence number ", "2", "."]

Благодаря скобкам, найденный разделитель separator сохранился и вошел в результирующий массив.

См. также


Автор: Сварга (не зарегистрирован), дата: 15 декабря, 2009 - 22:26
#permalink

Можно ли по аналогии с myString.split(/(\d)/)
использовать что-то вроде myString.split(/(\[A-Za-z0-9])/) ?
Естественно это не работает, но что-то в этом духе


Автор: B@rmaley.e><e (не зарегистрирован), дата: 16 декабря, 2009 - 14:30
#permalink

> myString.split(/(\[A-Za-z0-9])/)
Конечо не будет работать, тут ошибка синтаксиса.

myString.split(/([A-Za-z0-9])/)
// а еще лучше
myString.split(/([a-z0-9])/i)
// или
myString.split(/(\w)/i) // тут, правда, еще и нижнее подчеркивание ловится

Автор: Бобр, дата: 29 января, 2010 - 17:28
#permalink

Как найти отдельные слова и строчки в кавычках? В поисковых строках обычно когда надо найти фразу, то её берут в кавычки. Например:

word "big phrase"

Такой текст должен быть разделён на два элемента массива:
1) word
2) big phrase

Как это сделать?


Автор: B@rmaley.e><e, дата: 29 января, 2010 - 17:40
#permalink

Тут нужны регэкспы либо разбор по токенам.

var str = 'word "big phrase"';
alert( str.match(/".+?"/g) );

Автор: Бобр, дата: 29 января, 2010 - 17:48
#permalink

Я понимаю, что нужны регэкспы, я не понимаю, как их написать.
Alert показывает только "big phrase", а надо, чтобы одна строчка массива - word, другая - "big phrase".


Автор: 777 (не зарегистрирован), дата: 2 февраля, 2010 - 15:10
#permalink

split(" \"");


Автор: brud.90 (не зарегистрирован), дата: 2 марта, 2011 - 15:02
#permalink

я думаю, все-таки регулярка должна была быть

var str = 'word "big phrase"';
alert( str.match(/^.*?".+?"$/g) );

Автор: brud.90 (не зарегистрирован), дата: 2 марта, 2011 - 15:05
#permalink

забыл про скобочки

var str = 'word "big phrase"';
var matches = str.match(/^(.*?)"(.+?)"$/g) );
alert(matches[0]);//может быть пустым, если перед кавычкой ничего нет
alert(matches[1]);

Автор: Increazon, дата: 6 августа, 2010 - 00:25
#permalink

а да! я это и искал!!!


Автор: гость0101110 (не зарегистрирован), дата: 13 октября, 2010 - 15:09
#permalink

как можно узнать, сколько элементов получилось в массиве?
(исходная строка каждый раз разная)


Автор: Гость (не зарегистрирован), дата: 17 октября, 2010 - 16:10
#permalink

как сделать, чтобы разделители тоже записывались в поля?


Автор: Гость (не зарегистрирован), дата: 2 ноября, 2010 - 15:48
#permalink

Помогите плииииз.
Написать функцию, которая проверяет, что в строке, переданной в качестве аргумента, передается время в формате "чч.мм" или "чч.мм.сс". Если это так, то функция возвращает true, в противном случае - false.


Автор: djembuka, дата: 3 марта, 2011 - 11:13
#permalink

Если separator является регулярным выражением со вложенными скобками, то каждый раз при совпадении separator все результаты захвата скобками, включая undefined результаты, добавляются в выходной массив.

К сожалению, в IE вплоть до 8 результаты захвата скобками в массив не добавляются.


Автор: Vorber (не зарегистрирован), дата: 14 марта, 2011 - 17:41
#permalink

Вложенные скобки в регулярке не работают в ИЕ (как минимум 8-м). Я бы это добавил в описание примера.


Автор: Гость (не зарегистрирован), дата: 10 августа, 2011 - 12:13
#permalink

Понимаю, что вопрос может быть смешен, но кто ни будь поможет удалить свою страницу в одноклассниках ни как не могу плизззз


Автор: Даниил (не зарегистрирован), дата: 16 декабря, 2011 - 21:13
#permalink

у меня строка
var str="2.9 2.6 2.5";
делаю через
str.split(',',3);
у меня все равно массив заполняется так
alert(str[0]); // 2
alert(str[1]); // .
alert(str[2]); // 9

а надо str[0]=2.9
str[1]=2.6


Автор: Гость (не зарегистрирован), дата: 16 декабря, 2011 - 21:14
#permalink

точнее str.split(' ',3);
просто и так и так пробывал


Автор: Гость (не зарегистрирован), дата: 20 декабря, 2011 - 16:21
#permalink

var str = "2.9 5.6 7.8";
str = str.split(' '); //пробел между кавычками
alert(str[2]); //7.8
сепаратор тут не запятая, а пробел. ты его не ставишь, поэтому выходит '2','.' и '9'


Автор: Гость (не зарегистрирован), дата: 28 декабря, 2011 - 19:39
#permalink

function(file, response){
#тут некие действия функции
response.split('#');
alert(response[0]); // выдает: "s", хотя в функцию респонс приходит таким: success#image_name.jpg
}


Автор: B@rmaley.e><e, дата: 29 декабря, 2011 - 01:40
#permalink

Метод split возвращает новый массив.


Автор: Vaz (не зарегистрирован), дата: 2 марта, 2012 - 15:06
#permalink

response.split('#');
alert(response[0]);
конечно не сработает, надо так:
response = response.split('#');
alert(response[0]);

ну, думаю ты понял - сплит строку не меняет, он просто возвращает массив. а ты алерт первого символа строки вызываешь.


Автор: Гость (не зарегистрирован), дата: 30 марта, 2012 - 20:43
#permalink

Доброго времени суток, помогите пожалуйста, наткнулся на такое задание
Напишите сценарий, выводящий на экран текст стихотворения:

Мы ехали на машине ПОБЕДА
Остались мы без ОБЕДА
Случилась БЕДА
Пропала ЕДА
Ты ее съела? – ДА

При этом слова, выделенные жирным шрифтом, получились от исходного слова «победа» (строчные буквы!), путем использования методов объекта String.

Как именно это нужно сделать корректно, чтобы не вызывало ошибок?


Автор: Гость (не зарегистрирован), дата: 1 апреля, 2012 - 22:13
#permalink

var word = "победа";
word = word.toUpperCase(); // слово заглавными буквами
Возможно есть и другой вариант
for (var i = 0; i ',word.substr(i,word.length));
} // выведет
ПОБЕДА
ОБЕДА
БЕДА
ЕДА
ДА


Автор: Гость (не зарегистрирован), дата: 1 апреля, 2012 - 22:17
#permalink

Ошибочка вышла в предыдущем сообщении
for (var i = 0; i < word.length-1; i++) {
document.write('',word.substr(i,word.length));
}


Автор: Гость Алексей (не зарегистрирован), дата: 20 апреля, 2012 - 17:46
#permalink

из php аяксом json_encode(php_массив) возвращает строку:
(new String("{\"67640\":\"\\u0410\\u043d\\u0433\\u0430\\u0440\\u0441\\u043a\",\"68511\":\"\\u0411\\u0440\\u0430\\u0442\\u0441\\u043a\" ...

Как эту строку сделать массивом?


Автор: fr33ek (не зарегистрирован), дата: 4 мая, 2012 - 10:50
#permalink

jQuery.parseJSON( json )


Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
1 + 1 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Реклама

Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние темы на форуме
Forum
Последние комментарии