Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 14.10.2014, 18:33
Интересующийся
Отправить личное сообщение для Ant_Jhon Посмотреть профиль Найти все сообщения от Ant_Jhon
 
Регистрация: 14.10.2014
Сообщений: 22

щас момент, надо уточнить на счет .12 распарсит ли его сервак в дабл
Ответить с цитированием
  #32 (permalink)  
Старый 14.10.2014, 18:47
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Ant_Jhon
надо уточнить на счет .12
Дык пох на сервак. Кто числа вбивать будет? Если прогер - то ок. Он так может )
Ну а если тупой юзер или секретутка, то отсутствие целой части - скорее всего ошибка.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #33 (permalink)  
Старый 14.10.2014, 19:36
Интересующийся
Отправить личное сообщение для Ant_Jhon Посмотреть профиль Найти все сообщения от Ant_Jhon
 
Регистрация: 14.10.2014
Сообщений: 22

Итак, сори за паузу вообще говоря
double tmpParse = Double.parseDouble((String)".1");
log.info("tmpParse = " + tmpParse);
вот эта хрень неожиданно(для меня) выдала tmpParse = 0.1, тоесть выражения типа .1 и 1. допустимы :\
Ответить с цитированием
  #34 (permalink)  
Старый 14.10.2014, 19:41
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от terminator-101
 
Регистрация: 14.10.2014
Сообщений: 117

Сообщение от Ant_Jhon
тоесть выражения типа .1 и 1. допустимы :\
Тогда вот так


s="ab<c1.10\n\n>)(*an.11kj5.b10.90f 20c"
re=/(\d+)?\.?\d+\.?|^$/gm
s.match(re)

// [ '1.10', '', '.11', '5.', '10.90', '20' ]
Ответить с цитированием
  #35 (permalink)  
Старый 14.10.2014, 19:48
Интересующийся
Отправить личное сообщение для Ant_Jhon Посмотреть профиль Найти все сообщения от Ant_Jhon
 
Регистрация: 14.10.2014
Сообщений: 22

терминатор, можешь расписать на русском что означает эта конструкция
/(\d+)?\.?\d+\.?|^$/gm ? и как я уже спрашивал очень хочется узнать для чего на конце gm? на сколько смог понять из гугла регЭкспы ставятся внутри /../
Ответить с цитированием
  #36 (permalink)  
Старый 14.10.2014, 19:49
Интересующийся
Отправить личное сообщение для Ant_Jhon Посмотреть профиль Найти все сообщения от Ant_Jhon
 
Регистрация: 14.10.2014
Сообщений: 22

Млять тоже хочу уметь делать такие штуки /(\d+)?\.?\d+\.?|^$/gm
Ответить с цитированием
  #37 (permalink)  
Старый 14.10.2014, 19:51
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от terminator-101
 
Регистрация: 14.10.2014
Сообщений: 117

Ant_Jhon,
Мне щас некогда, уходить надо, потом. Пока почитай про регекспы на этом сайте, там есть, по-моему.
Ответить с цитированием
  #38 (permalink)  
Старый 14.10.2014, 19:52
Интересующийся
Отправить личное сообщение для Ant_Jhon Посмотреть профиль Найти все сообщения от Ant_Jhon
 
Регистрация: 14.10.2014
Сообщений: 22

Хорошо, спасибо всем за помощь
Ответить с цитированием
  #39 (permalink)  
Старый 14.10.2014, 20:21
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Ant_Jhon
вот эта хрень неожиданно(для меня) выдала tmpParse = 0.1, тоесть выражения типа .1 и 1. допустимы
Ну ты удивишься если скормишь туда числа типа 1e2.
Ты уверен что тебе нужно пропускать такой формат?

Если да, то регулярка тебе нах не нужна.

if (!(input == '' || input == Infinity || isNaN(input))) {

}
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #40 (permalink)  
Старый 15.10.2014, 12:39
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от terminator-101
 
Регистрация: 14.10.2014
Сообщений: 117

Ant_Jhon,
Означает следующее
все \d+ означают 1 или более цифровых символов, тут \d -- метасимвол, означающий диапазон 0-9 (эквивалентен [0-9]), он совпадает с любым 1 цифровым символом, а + означает 1 или более вхождений предыдущего символа. Все ? означают 0 или 1 вхождение предыдущего шаблона. а \. означает просто совпадение с точкой (экранирование для того, чтобы отменить интерпретацию точки как метасимвола). Флаг g означает глобальный поиск, значит в строке foofoo /foo/g найдет 2 foo, а /foo/ -- только первое. m -- это флаг многострочного поиска, это значит(конкретно в JS), что символы ^ и $ будут работать со всеми переносами строк, а не только с началом и концом всей строки.

Ну ты наверное знаешь, но на всякий случай, | означает or, а ^$ -- совпадение с пустой строкой, само-сабой

Вот еще что забыл сказать. Если ты работаешь с файлами, в которых виндовские переносы строк, типа \r\n, ты должен эти строки сначала очистить от всех \r, например вот так

s=s.replace(/\r\n/g, "\n")

иначе, у тебя будет парсится больше пустых строк чем на самом деле, примерно вот такая параша:

s="ab<c1.10a\r\n\r\n>)(*an.11kj5.b10.90f 20c"
re=/(\d+)?\.?\d+\.?|^$/gm
//s=s.replace(/\r\n/g, "\n")
s.match(re)

// [ '1.10', '', '', '', '.11', '5.', '10.90', '20' ]

Последний раз редактировалось terminator-101, 15.10.2014 в 12:47.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регулярное выражение и метод test tsigel Общие вопросы Javascript 3 30.08.2013 13:47
регулярное выражение literator Ваши сайты и скрипты 1 18.08.2013 18:24
Помогите написать регулярное выражение! Dorian_bs Общие вопросы Javascript 7 09.12.2011 09:12
Регулярное выражение: любой символ, включая перевод строки Gleb Общие вопросы Javascript 3 28.07.2011 12:15
регулярное выражение theo_ Общие вопросы Javascript 15 21.06.2010 10:29