Метод 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 сохранился и вошел в результирующий массив.
Можно ли по аналогии с myString.split(/(\d)/)
использовать что-то вроде myString.split(/(\[A-Za-z0-9])/) ?
Естественно это не работает, но что-то в этом духе
> myString.split(/(\[A-Za-z0-9])/)
Конечо не будет работать, тут ошибка синтаксиса.
Как найти отдельные слова и строчки в кавычках? В поисковых строках обычно когда надо найти фразу, то её берут в кавычки. Например:
word "big phrase"
Такой текст должен быть разделён на два элемента массива:
1) word
2) big phrase
Как это сделать?
Тут нужны регэкспы либо разбор по токенам.
Я понимаю, что нужны регэкспы, я не понимаю, как их написать.
Alert показывает только "big phrase", а надо, чтобы одна строчка массива - word, другая - "big phrase".
split(" \"");
я думаю, все-таки регулярка должна была быть
забыл про скобочки
а да! я это и искал!!!
как можно узнать, сколько элементов получилось в массиве?
(исходная строка каждый раз разная)
как сделать, чтобы разделители тоже записывались в поля?
Помогите плииииз.
Написать функцию, которая проверяет, что в строке, переданной в качестве аргумента, передается время в формате "чч.мм" или "чч.мм.сс". Если это так, то функция возвращает true, в противном случае - false.
Если separator является регулярным выражением со вложенными скобками, то каждый раз при совпадении separator все результаты захвата скобками, включая undefined результаты, добавляются в выходной массив.
К сожалению, в IE вплоть до 8 результаты захвата скобками в массив не добавляются.
Вложенные скобки в регулярке не работают в ИЕ (как минимум 8-м). Я бы это добавил в описание примера.
Понимаю, что вопрос может быть смешен, но кто ни будь поможет удалить свою страницу в одноклассниках ни как не могу плизззз
у меня строка
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
точнее str.split(' ',3);
просто и так и так пробывал
var str = "2.9 5.6 7.8";
str = str.split(' '); //пробел между кавычками
alert(str[2]); //7.8
сепаратор тут не запятая, а пробел. ты его не ставишь, поэтому выходит '2','.' и '9'
function(file, response){
#тут некие действия функции
response.split('#');
alert(response[0]); // выдает: "s", хотя в функцию респонс приходит таким: success#image_name.jpg
}
response.split('#');
alert(response[0]);
конечно не сработает, надо так:
response = response.split('#');
alert(response[0]);
ну, думаю ты понял - сплит строку не меняет, он просто возвращает массив. а ты алерт первого символа строки вызываешь.
Доброго времени суток, помогите пожалуйста, наткнулся на такое задание
Напишите сценарий, выводящий на экран текст стихотворения:
Мы ехали на машине ПОБЕДА
Остались мы без ОБЕДА
Случилась БЕДА
Пропала ЕДА
Ты ее съела? – ДА
При этом слова, выделенные жирным шрифтом, получились от исходного слова «победа» (строчные буквы!), путем использования методов объекта String.
Как именно это нужно сделать корректно, чтобы не вызывало ошибок?
var word = "победа";
word = word.toUpperCase(); // слово заглавными буквами
Возможно есть и другой вариант
for (var i = 0; i ',word.substr(i,word.length));
} // выведет
ПОБЕДА
ОБЕДА
БЕДА
ЕДА
ДА
Ошибочка вышла в предыдущем сообщении
for (var i = 0; i < word.length-1; i++) {
document.write('',word.substr(i,word.length));
}
из php аяксом json_encode(php_массив) возвращает строку:
(new String("{\"67640\":\"\\u0410\\u043d\\u0433\\u0430\\u0440\\u0441\\u043a\",\"68511\":\"\\u0411\\u0440\\u0430\\u0442\\u0441\\u043a\" ...
Как эту строку сделать массивом?
jQuery.parseJSON( json )
Отправить комментарий
Приветствуются комментарии:- Полезные.
- Дополняющие прочитанное.
- Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.Для остальных вопросов и обсуждений есть форум.