Просмотр полной версии : отсортировать текстовые символы в массив.
Slavik2003
25.07.2005, 13:56
Здравствуйте....
Долго ищу инфу по этому вопросу....
Есть текстовое поле с именем(var) text2 .
В нем уже написано продолжительное количество символов - "regjukj".
Мне нужно сохранить в переменную только четвертую букву - "j". Или первую... Или допустим создать поиск буквы в строке.
Возможно ли это? Можете дать примерный скриптик?
Может надо как то иначе, допустим сохранять всю строку в переменную, и потом ее обрабатывать.
А потом я хочу отсортировать это в одномерный массив, но с массивами я знаю как работать. Мне лишь надо знать как "раздробить" строчку и сохранять отдельные ее части...
Заранее спасибо...
бери и в цикле лепи массив выдирая по одной буковке ...
myArray = [];
myArray = text2.split("");
И в массиве будут отдельные символы.
Slavik2003
25.07.2005, 14:06
в цикле, в смысле при вводе? я имел ввиду что текст уже введен, и его надо обработать.... поскольку мне надо чтоб обработка символов была от начала до конца, без прерываний. допустим пользователь сотрет последний символ и заменит его в строке... это потребует дополнительные функции для пересчета.
Slavik2003
25.07.2005, 14:08
dimarik
Спасибо... щас попробую....
str = "asdfghjkl";
arr = new Array();
for (var i = 0; i<str.length; i++) {
arr = str.split("");
}
str = "asdfghjkl";
arr = new Array();
for (var i = 0; i<str.length; i++) {
arr = str.split("");
}
и работает? спать хоть иногда надо
Slavik2003
25.07.2005, 14:21
dimarik
KUZEN
Спасибо вам огромное.... это то что мне было надо... : ) !!!
За одно... : ) ...но это уже вопрос посложнее....
Допустим я разбил на массив - 1, 2, a, ...
А вот можно ли как то (без математических уравнений умножающих первое на 10) соединить первую ячейку со второй так, чтоб получилось число 12 ? (а не 1, 2)
Поскольку в строке было введено "12a..." мне иногда придется отделять числа от букв и от других чисел.
Если кто знает... помогите пожалуйста...
ничё не втыкаю. зачем тут цикл, скажи?
2 Slavik2003
Не темни, скажи цель какая. Может более изящныс способом можно сделать
Slavik2003
25.07.2005, 14:25
добавлю лишь, что это может быть уже в другом массиве... делаться из 1 и 2 - 12.
Slavik2003
25.07.2005, 14:28
dimarik
Это некая система паролирование карты одной игрушки : )
Но хотелось, чтоб именно через текстовое поле осуществлялся ввод новой карты.
Карта пишется в зашифрованном виде. В текстовое поле ввидже строки символов.
Программа обрабатывает строку, и строит карту.
Поэтому понадобилась гибкость использования введенного текста.
ничё не втыкаю. зачем тут цикл, скажи?
Цикл что бы разбить строку, а то что ты предлогал тупо записывается в одну ячейку массива ...
Цикл что бы разбить строку, а то что ты предлогал тупо записывается в одну ячейку массива ...
Ты правда так считаешь?
А проверить слабо?
text2="xcvsdfgdfgdfg";
myArray = [];
myArray = text2.split("");
trace(myArray.join(", "));
trace(myArray[5]);
Slavik2003
25.07.2005, 14:32
Kuzen
я проверил.... то что дал димарик... этот способ как раз таки разбивает все на массив, где в каждой ячейке другой символ. можно любой выбрать, я испытал : )
итак, текстовое поле анализируем на предмет ключа, по которому строим некую карту. пральна?
В общем, посмотри в хелпе методы классов Array и String
Slavik2003
25.07.2005, 16:37
В общем, я нашел кое-что, что позволяет обойтись без лишнего массива.
slice(x, x2);
x - начальная ячейка.
x2 - конечная + (-1)
Допустим в текстовом поле написано "123456".
trace(text2.slice(1, 2)); - выдает "2".
trace(text2.slice(0, 2)); - выдает "12".
trace(text2.slice(0, 3)); - выдает "123". (от и до конечной).
Нет необходимости вообще создавать отдельный массив(myArray = [];)
Кроме того, здесь я нашел ответ на второй вопрос, как с нулевой и первой ячейки(или других) создать число 12.
trace(text2.slice(0, 2) * 10 / 10);
Десяточки превращают содержимое масивчика slice в числовое значение. (иначе не смог). Может можно иным способом... подскажите если знаете....
т.е. без десяточек уравнение text2.slice(0, 2) + 2 = 122 (а не 14).
text2.slice(x, x2);
Вот таким вот способом можно перемещаться по текстовому полю : )
trace( typeof( Number(text2.slice(0, 2)) ));
Slavik2003
25.07.2005, 17:02
Не выходит. Пишет "number" : ) (с маленькой)
Slavik2003
25.07.2005, 17:06
Дело в том, что slice это маленький масивчик. Состоящий(в случае 0, 2) с 1, 2.
Все что ты делаешь, это превращаешь 1 в число(еще раз) и 2 в число(еще раз). Остается как и было 1, 2. : )
Slavik2003
25.07.2005, 17:19
Способ проще trace((text2.slice(0, 2)*1+5)); - выдаст 17.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.