щас момент, надо уточнить на счет .12 распарсит ли его сервак в дабл
|
Цитата:
Ну а если тупой юзер или секретутка, то отсутствие целой части - скорее всего ошибка. |
Итак, сори за паузу:) вообще говоря
double tmpParse = Double.parseDouble((String)".1"); log.info("tmpParse = " + tmpParse); вот эта хрень неожиданно(для меня) выдала tmpParse = 0.1, тоесть выражения типа .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' ] |
терминатор, можешь расписать на русском что означает эта конструкция
/(\d+)?\.?\d+\.?|^$/gm ?:) и как я уже спрашивал очень хочется узнать для чего на конце gm? на сколько смог понять из гугла регЭкспы ставятся внутри /../ |
Млять тоже хочу уметь делать такие штуки /(\d+)?\.?\d+\.?|^$/gm
|
Ant_Jhon,
Мне щас некогда, уходить надо, потом. Пока почитай про регекспы на этом сайте, там есть, по-моему. |
Хорошо, спасибо всем за помощь:thanks:
|
Цитата:
Ты уверен что тебе нужно пропускать такой формат? Если да, то регулярка тебе нах не нужна. if (!(input == '' || input == Infinity || isNaN(input))) { } |
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' ] |
Часовой пояс GMT +3, время: 00:41. |