Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 17.01.2012, 18:15
australian incognito вне форума Посмотреть профиль Отправить личное сообщение для australian incognito Найти все сообщения от australian incognito
  № 1  
Ответить с цитированием
australian incognito
 
Аватар для australian incognito

Регистрация: Sep 2005
Адрес: Минск
Сообщений: 389
Post Валидация строки на одинаковые символы

Доброго дня всем.
Не могу придумать как реализовать следующее: допустим есть некое текстовое поле (input), в которое вводятся символы (назовем его myText_txt). Я хочу сделать проверку на то, чтобы введенные символы не состояли из одних только пробелов, но при этом один или несколько пробелов разрешается, если есть другие символы.

Т.е. разрешается ввод типа:
Код AS1/AS2:
"привет всем!"
Код AS1/AS2:
"как я встретил вашу маму"
но не разрешен ввод типа:
Код AS1/AS2:
" "
Код AS1/AS2:
"         "


Последний раз редактировалось australian incognito; 17.01.2012 в 18:20.
Старый 17.01.2012, 18:51
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
А такой валидный?
Код:
"как я                            "
или
Код:
"                      маму"
или
Код:
"как                маму"
__________________
Идите первым!

Старый 17.01.2012, 19:09
australian incognito вне форума Посмотреть профиль Отправить личное сообщение для australian incognito Найти все сообщения от australian incognito
  № 3  
Ответить с цитированием
australian incognito
 
Аватар для australian incognito

Регистрация: Sep 2005
Адрес: Минск
Сообщений: 389
Цитата:
Сообщение от mooncar Посмотреть сообщение
А такой валидный?
В идеале - не более 2-х пробелов подряд. Как черновой вариант - сойдут и вышеописанные варианты.

Старый 17.01.2012, 19:11
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 4  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Код AS3:
str.replace(/^\s|\s{2,}?|\s$/g, "");
if (str == "")
{
    trace("Ненене, Дэвид Блейн!!! Мы тебе что, ...");
}
Хм... что-то я не доглядел, что здесь AS 1/2

Тогда в цикле while меняй два пробела на один, пока менять больше будет нечего =)
__________________
Поймай яблоко 2!


Последний раз редактировалось Zebestov; 17.01.2012 в 19:28.
Старый 17.01.2012, 19:31
FlashRus вне форума Посмотреть профиль Отправить личное сообщение для FlashRus Найти все сообщения от FlashRus
  № 5  
Ответить с цитированием
FlashRus
 
Аватар для FlashRus

Регистрация: Nov 2006
Адрес: СПб
Сообщений: 921
Отправить сообщение для FlashRus с помощью ICQ Отправить сообщение для FlashRus с помощью Skype™
Цитата:
str.replace(/^\s|\s{2,}?|\s$/g, "")
сколько читал, не могу понять как работают выражения такого вида.

Старый 17.01.2012, 19:41
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 6  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Цитата:
Сообщение от FlashRus Посмотреть сообщение
сколько читал, не могу понять как работают выражения такого вида.
Меняем первый пробел (^\s) ИЛИ (|) два и более пробела (\s{2,}?) ИЛИ (|) последний пробел (\s$) на пустое место ("")
__________________
Поймай яблоко 2!

Старый 17.01.2012, 19:43
FlashRus вне форума Посмотреть профиль Отправить личное сообщение для FlashRus Найти все сообщения от FlashRus
  № 7  
Ответить с цитированием
FlashRus
 
Аватар для FlashRus

Регистрация: Nov 2006
Адрес: СПб
Сообщений: 921
Отправить сообщение для FlashRus с помощью ICQ Отправить сообщение для FlashRus с помощью Skype™
А можно ещё глубже?

Цитата:
^\s
и ещё, как у них обстоят дела с производительностью? Еффективней написать своё или использовать это?

Старый 17.01.2012, 19:46
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 8  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Код:
^\s
\s — пробел. один. обязательно.
^ — стоит в начале шаблона, значит имеется в виду "символ следом должен быть в начале строки"
__________________
Поймай яблоко 2!

Старый 18.01.2012, 16:53
australian incognito вне форума Посмотреть профиль Отправить личное сообщение для australian incognito Найти все сообщения от australian incognito
  № 9  
Ответить с цитированием
australian incognito
 
Аватар для australian incognito

Регистрация: Sep 2005
Адрес: Минск
Сообщений: 389
Реализовал следующим образом на АС2:
Код AS1/AS2:
var str:String = "   ";
var eLength = str.length;
var i:Number = 0;
var k:Number = 0;
while (i < eLength)
{
	if (str.charAt(i) == " " || str.charAt(i) == "  ")
	{
		k++;
	}else{
		k--;
	}
	i++;
}
if(k>0){
	trace("NO!")
}
В итоге, если пробелов больше, чем любых других букв - значит валидация не пройдена. Может не самый изящный вариант, но для моих целей вполне сойдет. Если кто-то сможет довести до идеала - буду рад посмотреть.

Старый 18.01.2012, 17:47
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 10  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
Код AS1/AS2:
var str:String = "  qwe  rty  ";
// проверка на все пробелы
var isBlank:Boolean = str.split(" ").length == str.length + 1;
trace( "isBlank : " + isBlank );
// проверка на три и более пробела подряд
var hasTripleBlanks:Boolean = str.indexOf("   ") > -1;
trace( "hasTripleBlanks : " + hasTripleBlanks );

Создать новую тему Ответ Часовой пояс GMT +4, время: 23:54.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 23:54.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.