- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
function CheckNumField(value)
{
for(var i=0; i<value.length; i++)
{
switch(value.substr(i,1))
{
case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case '.':
return true;
break;
default:
return false;
break;
}
}
}
Elvenfighter 13.09.2013 22:15 # +3
guest 13.09.2013 22:24 # −10
guest 13.09.2013 22:41 # −10
guest 13.09.2013 23:27 # −10
guest 14.09.2013 20:33 # 0
По теме: а ведь длина поля текстового - 1, да?
guest 14.09.2013 21:24 # 0
Stealth 15.09.2013 17:13 # −8
guest 14.09.2013 02:00 # +4
Bart 14.09.2013 00:24 # +4
Только что-то тут лишнее: или return, или последующий break.
Elvenfighter 14.09.2013 12:01 # 0
Bart 14.09.2013 12:49 # 0
bormand 14.09.2013 12:37 # +3
bormand 14.09.2013 12:45 # +3
Bart 14.09.2013 12:55 # +1
переносим в качестве дефолтного ретурна в конец функции.
З.Ы: верно замечено - останутся случаи вида 666.66.666.
eth0 14.09.2013 19:03 # +1
Elvenfighter 15.09.2013 01:16 # +2
Правда я тут "доложил" до общей кучи ;)
bormand 15.09.2013 11:47 # +2
Elvenfighter 15.09.2013 12:27 # −1
А почему бы их не применить вместе? :) Я бы еще добавил ^-? в регулярку, чтоб парсить отрицательные числа, но в ОП этого нет.
bormand 15.09.2013 12:31 # 0
Если что-то и добавлять, то тест на попадание в диапазон допустимых значений. Например от 0 до 100.
Elvenfighter 15.09.2013 12:53 # 0
bormand 15.09.2013 12:57 # 0
wvxvw 15.09.2013 12:19 # 0
bormand 15.09.2013 12:29 # +1
Отрицательные числа - ну зависит от задачи. Если это какая-то цена или количество, то явно не нужны.
wvxvw 15.09.2013 12:33 # 0
Да, и еще, в ж.скрипте можно флоаты записывать так: .123456, т.е. без ведущего нуля.
bormand 15.09.2013 12:34 # 0
Если бы не считал - на NaN была бы проверка isNaN, +-Infinity и слишком большие числа с экспонентой срезались бы проверкой на диапазон. ".123456" особой угрозы не представляет.
Vindicar 15.09.2013 14:07 # +1
bormand 15.09.2013 15:35 # +1
> конечные автоматы
Емнип, если верить теории, они эквивалентны ;)
anonimb84a2f6fd141 15.09.2013 20:40 # 0
bormand 15.09.2013 20:58 # +1
Ну это какой-нибудь perl6. А классические регулярки эквивалентны конечному автомату (и обычно в него и компилируются). Поэтому ими и нельзя вменяемо парсить рекурсивные структуры типа XML и HTML.
> про парсинг html регулярками
Зачем это делают в век xpath? :)
> 4к плюсов первому говнокоменту
Речь об этом комменте? "Согласно коду, 2 6, 6Y и .ммм - числа, как ни верти..."
kegdan 15.09.2013 21:04 # 0
а это от задачи зависит отдельный фаил проще выкалупать регеспом
bormand 15.09.2013 21:23 # 0
Другое дело что далеко не все DOM либы умеют парсить кривожопый HTML (в отличие от кошерного XML). Скорее всего в этом и причина.
bormand 15.09.2013 21:30 # 0
1024-- 15.09.2013 21:43 # +1
Говнисто, длинно и недостаточно корректно. (Но написать это быстрее, чем возиться с парсерами)
bormand 15.09.2013 21:49 # 0
Я хотел полноценное API делать, с блекджеком и отправкой, поэтому и начал возиться с парсером. Писать регулярки для выдирания всей инфы со всех вариантов страничек было бы сизифовым трудом... Но на API я забил из-за вселенской лени, и от него осталось только говнотифи ;)
> чем возиться с парсерами
С парсером возиться 1 раз, пока не распарсишь им свою первую хтмлку. Дальше - на порядки легче :)
Ну а так - не спорю, для одноразового парсинга регулярки вполне сойдут.
anonimb84a2f6fd141 15.09.2013 23:47 # 0
1024-- 16.09.2013 00:01 # 0
anonimb84a2f6fd141 16.09.2013 06:15 # 0
1024-- 16.09.2013 12:16 # 0
anonimb84a2f6fd141 15.09.2013 23:54 # 0
Выковырять содержимое одного тега регуляркой тоже несложно и работает быстрее. И юзать регулярки поначалу действительно проще, чем в первый раз разобраться с xpath. xpath нужен там, где нужно именно дерево. Ну и недавно был пиздец, когда я чистил html регулярками, так в разных страницах в одном месте было два пробела, в другом - пробел и \xa0, я чуть не ебанулся - выглядит так же, а регулярка не отрабатывает.
Кое-где регекспы даже лучше, например, нарисуй мне замену "(<br>)+" на "<br><br>" с xpath.
bormand 16.09.2013 05:47 # 0
> xpath
XPath это всего лишь селектор, сам по себе он ниче менять не умеет... Так что на этой задаче сравнивать его с регулярками не совсем честно.
Будет длинноватый код - заселектить xpath'ом нужные ноды и для каждой добавить в ее родителя еще одну ноду с <br>. Ничего сложного, но писанины больше, чем той регуляркой, это факт.
anonimb84a2f6fd141 16.09.2013 06:15 # 0
>Ничего сложного, но писанины больше, чем той регуляркой, это факт.
Код в студию. С регекспами задача решается в лоб без раздумий.
bormand 16.09.2013 07:05 # 0
Искать может. Заменять - только внешними средствами, например правкой нод через DOM. Есть еще XSLT, вот там эта задача тоже решается влоб, но писанины очень много (впрочем, в XSLT ее всегда много): > Код в студию.
До эклипса доберусь - напишу.
bormand 16.09.2013 07:49 # 0
Писал влоб, без раздумий, может быть можно и лучше, но маловероятно ;) Один раз заглянул в ман в поисках insertAfter, которого там не оказалось, зато нашелся insertBefore. > в лоб без раздумий
bormand 16.09.2013 12:28 # 0
kegdan 16.09.2013 13:30 # −1
Vindicar 16.09.2013 09:32 # 0
kegdan 15.09.2013 12:12 # 0
kegdan 15.09.2013 12:44 # −1
kegdan 15.09.2013 12:50 # −1
roman-kashitsyn 15.09.2013 12:51 # 0
мне кажется, правильней было бы назвать number? знак вопроса уже заменяет is. Ну и studlyCaps в руби вроде бы не используется. В классах CamelCase, в методах - gnu_style(), как в питоне.
kegdan 15.09.2013 12:58 # 0
anonimb84a2f6fd141 15.09.2013 20:40 # 0
Как в си?
Кстати, в XBMC сишное апи почему-то в жава стиле.
Eugene 16.09.2013 10:13 # 0
Elvenfighter 16.09.2013 21:14 # 0
bormand 16.09.2013 21:34 # +1
1024-- 16.09.2013 22:01 # 0
bormand 16.09.2013 22:03 # +1
Хм, а что тут тонкого? Это, скорее, копетанство ;)
1024-- 16.09.2013 22:08 # 0
популярная здесь выдержка из консоли вебкита:
'1 ', '' явно не все готовы видеть в качестве строкового представления чисел :)
bormand 16.09.2013 22:10 # 0
> '1 ', '' явно не все готовы видеть в качестве строкового представления чисел :
Кстати, а жс умеет с ним оперировать?
1024-- 16.09.2013 22:27 # 0
guest 17.09.2013 12:46 # −13
kegdan 17.09.2013 12:47 # −1
bormand 17.09.2013 13:05 # +4
kegdan 17.09.2013 13:36 # −1
crastinus 17.09.2013 13:11 # −1
kegdan 17.09.2013 13:28 # +1
crastinus 17.09.2013 13:36 # +1
kegdan 17.09.2013 14:05 # +1
crastinus 17.09.2013 14:10 # 0
kegdan 17.09.2013 14:21 # 0
crastinus 17.09.2013 14:36 # 0
Stertor 04.10.2013 18:54 # 0
bormand 04.10.2013 19:33 # 0
Проявляют толерантность ;)
crastinus 06.10.2013 13:27 # 0
Stertor 06.10.2013 14:59 # 0
crastinus 07.10.2013 06:56 # −1
Stertor 07.10.2013 15:39 # −2
crastinus 07.10.2013 21:11 # −2
Stertor 07.10.2013 21:12 # −1
crastinus 07.10.2013 21:15 # −2
Stertor 07.10.2013 21:16 # −1
❤❤❤
crastinus 07.10.2013 21:32 # −2
Stertor 07.10.2013 21:35 # −1
crastinus 07.10.2013 21:39 # −2
А вот комментарии
http://cs7009.vk.me/c540105/v540105274/8b19/zQGZb2G-F50.jpg
Stertor 07.10.2013 21:43 # −1
crastinus 07.10.2013 21:48 # −2
ru-antireligion.livejournal.com/10825973.html
Сразу тебе на это ссылку не давал. А то начал бы еще свою казырную речь про говноблоги.
Stertor 07.10.2013 21:52 # −1
crastinus 06.10.2013 13:26 # −1
Stertor 06.10.2013 14:52 # 0
http://content.gaydemon.com/pictures/7/a/71af760083d39633bc0af3ab4f43f9da.jpg
bormand 06.10.2013 15:37 # 0
Stertor 06.10.2013 16:12 # 0
Или я ошибаюсь?
;O
anonimb84a2f6fd141 06.10.2013 16:15 # +2
Stertor 06.10.2013 16:16 # +2
:D