Проверка RegEx / Javascript: не допускайте использование запятой в качестве допустимого символа - PullRequest
1 голос
/ 19 мая 2010

Я делаю проверку Javascript на своих числовых полях. Я использую RegEx, чтобы сделать это - впервые пользователь RegEx. Мне нужно, чтобы пользователь вводил только цифры и десятичные дроби, но не запятые. (т. е. 3600,00 - это нормально, а 3600,00 - нет). Я не могу понять, как убрать запятые как принятый символ. Любая помощь приветствуется. Спасибо!

                        var filter = /^([0-9])/;

                            if (!filter.test(txtItemAmount.value)) 
                            {
                                msg += "Item amount must be a number.\n";
                                txtItemAmount.focus
                            }       

Ответы [ 5 ]

1 голос
/ 19 мая 2010

Если вы хотите разрешить десятичные дроби меньше 1, целые или целые числа с десятичной частью, вы можете написать reg exp для этого-

/^(\.\d+)|(\d+(\.\d+)?)$/.test(value)

or you can use parseFloat-

if(parseFloat(value)+''===value)
0 голосов
/ 19 мая 2010
^(\d+\.?|\d*\.\d+)$

позволит 1, .2, 3., 4.5, 12345.67890 и т. Д .; это запретит 1,000, 0.123,456, . или 1.2.3.

0 голосов
/ 19 мая 2010

Используя "lookaround", комбинацию отрицательного lookbehind и смотрите в будущее, вы сможете провалить совпадение, если присутствует запятая:

(?<!,)[0-9\.]*(?!,)
0 голосов
/ 19 мая 2010

попробуйте это:

^(\d+(\.\d*)?)$

Он ищет одну или несколько цифр (\d+), а затем - период, за которым следуют 0 или несколько цифр ((\.\d*)?). Знак вопроса означает, что должно быть либо 1, либо 0 повторений периода и больше цифр. Период (.) Является специальным символом в регулярном выражении, поэтому его необходимо экранировать, следовательно, \ перед рукой.

Для получения дополнительной информации вы можете посмотреть здесь

0 голосов
/ 19 мая 2010

Ваш фильтр должен выглядеть примерно так: [0-9. ]+ (здесь вы можете указать числа, . и пробел

Лучшим фильтром будет [0-9 ]*[ .][0-9 ]*, где вы разрешите . только один раз.

Я не знаю о регулярных выражениях в javascript, поэтому вам может понадобиться защитить некоторые символы с помощью \.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...