Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Регулярное выражение (https://javascript.ru/forum/misc/50853-regulyarnoe-vyrazhenie.html)

danik.js 14.10.2014 18:20

Цитата:

Сообщение от Ant_Jhon
вощем решил разбить один большой паттерн на несколько и сделать вложенные if else честно говоря походу тут не составить паттерн

Да ты гонишь ) Проверку на пустую строку, да, наверно лучше вне регулярки проводить.

А вобще, юзай !isNaN - мне кажется норм )

Правдо оно принимает такие строки как:
.12
12.
1e2
Infinity

Но не пойух ли?

Ant_Jhon 14.10.2014 18:20

буду рад, если скажите как записать 3 отдельных паттерна:) тоесть:
паттерн 1 = числа
паттерн 2 = точка
паттерн 3 = пустая строчка

danik.js 14.10.2014 18:21

Цитата:

Сообщение от Ruslan_xDD
ну я же прописал в условии

Так а в каком случае typeof +number не будет равняться 'number' ?

Ant_Jhon 14.10.2014 18:21

терминатор, .12 не подходит

terminator-101 14.10.2014 18:24

Ant_Jhon,
Ну так я же спрашивал, тебе нужно что, чтобы оно целиком не входило или только точка из него не входила? Или чтобы оно целиком входило? Я запутался:)

danik.js 14.10.2014 18:24

Цитата:

Сообщение от Ant_Jhon
буду рад, если скажите как записать 3 отдельных паттерна тоесть:

Ответь все-таки чем тебе вариант из #12 не нравится?

ruslan_mart 14.10.2014 18:28

Цитата:

Сообщение от danik.js
Так а в каком случае typeof +number не будет равняться 'number' ?

Ладно, пофиг. :)

ruslan_mart 14.10.2014 18:28

Цитата:

Сообщение от danik.js
Ответь все-таки чем тебе вариант из #12 не нравится?

Наверное потому что отрицательные числа не принимает. :D

devote 14.10.2014 18:31

/^(?:|\-?\d+(?:\.\d+)?)$/

terminator-101 14.10.2014 18:32

Ant_Jhon,
короче если надо чтоб входило, попробуй вот так


s="abc1.10\n\nan.11kjb10.90f 20c"
re=/(\d+)?\.?\d+|^$/gm
s.match(re)
// [ '1.10', '', '.11', '10.90', '20' ]


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