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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 10.04.2008, 16:08
muhactive вне форума Посмотреть профиль Отправить личное сообщение для muhactive Найти все сообщения от muhactive
  № 1  
Ответить с цитированием
muhactive
[+1 10.04.08]
 
Аватар для muhactive

Регистрация: Apr 2008
Адрес: Ukrain
Сообщений: 12
По умолчанию Проверяет только по первой букве, а не по всему слову

Здравствуйте!
Писал функцию определяющую русские ли слова содержит строка.
Но почемута она проверяет только по первой букве а не повсему слову.
Код:
function registration(imya){
	if(typeof imya=="string" && imya!="") {
		for(i=0; i<=imya.length; i++){
		if (imya.charAt(i)>="А" && imya.charAt(i)<="я"){
			return true;
			}
		else {
		return false;
		  } 
		}
	}
}
trace(registration("ПятнUWEFC"));
На запрос выдаёт TRUE хотя с 5 символа пошли уже не русские буквы.
Подскажите пожалуйста почему цикл не срабатывает правильно Заранее благодарен!

Старый 10.04.2008, 16:25
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 2  
Ответить с цитированием
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
Потомучто после первой же буквы срабатывает return

Старый 10.04.2008, 16:41
muhactive вне форума Посмотреть профиль Отправить личное сообщение для muhactive Найти все сообщения от muhactive
  № 3  
Ответить с цитированием
muhactive
[+1 10.04.08]
 
Аватар для muhactive

Регистрация: Apr 2008
Адрес: Ukrain
Сообщений: 12
не мог бы ты исправить ошибку? а то что то у меня не выходит! Куда return переставить?


Последний раз редактировалось muhactive; 10.04.2008 в 16:54.
Старый 10.04.2008, 16:42
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 4  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
muhactive получает плюс за глобальное игнорирование запятых.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 10.04.2008, 17:01
crazyone вне форума Посмотреть профиль Отправить личное сообщение для crazyone Найти все сообщения от crazyone
  № 5  
Ответить с цитированием
crazyone
 
Аватар для crazyone

блогер
Регистрация: Nov 2007
Адрес: Киев
Сообщений: 557
Записей в блоге: 2
А что должна выдавать твоя функция, когда и кирилица и латиница в строке?

Старый 10.04.2008, 17:05
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 6  
Ответить с цитированием
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
Если грубо, то можно переставить return true в самый конец функции

Старый 10.04.2008, 17:10
muhactive вне форума Посмотреть профиль Отправить личное сообщение для muhactive Найти все сообщения от muhactive
  № 7  
Ответить с цитированием
muhactive
[+1 10.04.08]
 
Аватар для muhactive

Регистрация: Apr 2008
Адрес: Ukrain
Сообщений: 12
false

Старый 10.04.2008, 17:18
crazyone вне форума Посмотреть профиль Отправить личное сообщение для crazyone Найти все сообщения от crazyone
  № 8  
Ответить с цитированием
crazyone
 
Аватар для crazyone

блогер
Регистрация: Nov 2007
Адрес: Киев
Сообщений: 557
Записей в блоге: 2
Как-то так поменять:
Код:
function registration(imya){
	if(typeof imya=="string" && imya!="") {
		for(i=0; i<imya.length; i++){
		  if (!(imya.charAt(i)>="А" && imya.charAt(i)<="я")){
		      return false;
		  } 
		}
                return true;
	}
}
trace(registration("ПятнUWEFC"));

Старый 10.04.2008, 17:24
muhactive вне форума Посмотреть профиль Отправить личное сообщение для muhactive Найти все сообщения от muhactive
  № 9  
Ответить с цитированием
muhactive
[+1 10.04.08]
 
Аватар для muhactive

Регистрация: Apr 2008
Адрес: Ukrain
Сообщений: 12
Так работает. Спасибо!!!
Только я так и не понял почему тогда моя функция не работала. Ведь ты просто зделал "наоборот".


Последний раз редактировалось muhactive; 10.04.2008 в 17:27.
Старый 10.04.2008, 17:29
Tochilin вне форума Посмотреть профиль Отправить личное сообщение для Tochilin Найти все сообщения от Tochilin
  № 10  
Ответить с цитированием
Tochilin

Регистрация: Apr 2007
Сообщений: 53
Код:
function russ_text(str) {
	/* Для начала нужно проверить, является ли переданный параметр строкой.
	Также он не должен быть пустой строкой - поле ввода должно быть заполнено.*/
	if (typeof str == "string" && str != "") {
		/*Если предыдущие условия выполнены, запускаем цикл, при помощи которого просматрива-
		ем все символы строки. Длину строки определяем при помощи свойства length. */
		for (var i = 0; i<str.length; i++) {
			/* Сравниваем текущий символ строки с буквами "А" и "я" (первый и последний символы в
			русском блоке уникода) (буква "А" должна быть обязательно кирилличной - использование
			латинского аналога собьет работу алгоритма). Если он принадлежит к нужному диапазону,
			переходим к следующему символу. В противном случае обрываем работу кода и возвращаем
			false (эти задачи выполняет предложение return). Определить, какой символ в строке
			занимает позииию i, можно, воспользовавшись методом charAt(). */
			if (str.charAt(i)>="А" && str.charAt(i)<="я") {
			} else {
				return false;
			}
		}
		// Если цикл не прервался, значит, ни одного не кирилличного символа найдено не было. Возвращаем true.
		return true;
		// В случае, если поступившие данные не являются не пустой строкой,
		// возвращаем false
	} else {
		return false;
	}
}
trace(russ_text("Привет")); // Возвращает: true
trace(russ_text("Hello")); // Возвращает: false (использованы латинские
// буквы)
trace(russ_text('_root')); // Возвращает: false (_root не является строкой)
Этот пример взят из книги и ОЧЕНЬ подробно откомментирован. Надеюсь поможет.
Удачи!

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

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

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


 


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


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