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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 26.08.2011, 17:39
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 21  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
Не понятно - что ваше выражение ищет? Попробуйте на практике.
ЗЫ. Если бы можно было одним я бы сделал одним выражением.

Код AS3:
function numSplitting(num:Number, str:String = " "):String {
                                 //str- строка которой рубим число.
            var regE:RegExp =/(?<=(\d))(?=(\d{3})+(\.\d+)?$)/g
            var retStr:String = String(num).replace(regE, str);
            return retStr;
        }
Цитата:
Сообщение от alatar Посмотреть сообщение
ага, пришёл - весь энтузиазм поломал!


Последний раз редактировалось fish_r; 26.08.2011 в 17:46.
Старый 26.08.2011, 17:52
ProxyGreen вне форума Посмотреть профиль Отправить личное сообщение для ProxyGreen Найти все сообщения от ProxyGreen
  № 22  
Ответить с цитированием
ProxyGreen
 
Аватар для ProxyGreen

Регистрация: Jul 2011
Сообщений: 67
Цитата:
Сообщение от fish_r Посмотреть сообщение
Не понятно - что ваше выражение ищет? Попробуйте на практике.
ЗЫ. Если бы можно было одним я бы сделал одним выражением.
Хе хе всё опробовано, выражение ищет не символы, а позиции, и их в последствии заменяет на 'str'

Старый 26.08.2011, 18:03
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 23  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
Цитата:
Сообщение от ProxyGreen Посмотреть сообщение
Хе хе всё опробовано, выражение ищет не символы, а позиции, и их в последствии заменяет на 'str'
Гм.. и правда. Остроумно. Не уловил что замена, а не поиск. Извиняюсь

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

Регистрация: Jul 2011
Сообщений: 67
Ну это не я придумал. Такая задачка была в:

"Регулярные выражения, 3-е изд. (Джеффри Фридл, 2008)"

Более подробной книжки по регам не видел.


Последний раз редактировалось iNils; 27.08.2011 в 07:12.
Старый 26.08.2011, 21:38
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 25  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
А! Ну раз это мастер кунг-фу написал, то придраться можно: дело в том, что разделитель триад после точки либо не надо делать, либо делать в обратную сторону, т.е. справа-налево. Так что все равно неправильно

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

Регистрация: Jul 2011
Сообщений: 67
Таки признаю что одним выражением тут не вывезешь:
Код AS3:
function numSplitting(num:Number, str:String = " "):String {
			var sprlitReg:RegExp =/([^.]+)(\.\d+)?/;
			var regE:RegExp =/(\d{1,3})(?=(?:\d{3})+$)/g;
			var regRest:RegExp =/(\d{3})(?=\d)/g;
 
			var retStr:String = String(num);
 
			var main:String = retStr.replace(sprlitReg, "$1").replace(regE,"$1"+str);
			var rest:String = retStr.replace(sprlitReg, "$2").replace(regRest, "$1" + str);
 
            retStr = main + rest;
			return retStr;
		}
Теперь всё угрюмо и неинтересно, зато по правилам, но про такое деление дробной части честно говоря впервые слышу

Старый 28.08.2011, 23:54
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 27  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,601
Записей в блоге: 17
Цитата:
Красиво элегантно, но как сказал один мудрый человек - от таких конструкций, которые потом придется вспоминать зачем здесь что и как оно работает , например именно /= , почему нет итератора, - нужно отказываться
Это слишком простой случай чтобы об этом говорить. Если с этим есть проблемы - можно оставить комментарий к методу.

Старый 29.08.2011, 03:42
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 28  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Цитата:
Это слишком простой случай чтобы об этом говорить. Если с этим есть проблемы - можно оставить комментарий к методу.
Это да вопросов нет, но все же лучше написать просто ( криво) и понятно, чем красиво, но сложно для понимания как тебе - через время, так и команде при рефракторинге*.
__________________
Марк Tween

Старый 29.08.2011, 09:40
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 29  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
Код AS3:
private function addSpaces(input:Number):String
{
	var result:String = "";
	for (; input > 1; input /= 1000)
		result = int(input % 1000) + " " + result;
	return result;
}
Цитата:
но все же лучше написать просто ( криво) и понятно, чем красиво, но сложно для понимания
Что такого сложного Вы нашли в этих 4 строчках?

Старый 29.08.2011, 11:58
Hamid вне форума Посмотреть профиль Отправить личное сообщение для Hamid Найти все сообщения от Hamid
  № 30  
Ответить с цитированием
Hamid

Регистрация: Aug 2011
Сообщений: 65
В книжке "сборник рецептов" есть про такое форматирование стр. 108-113, там нужна библиотека ascb(в книжке должна быть ссылка на нее)

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

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

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


 


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


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