2012-01-11 6 views
-1

Возможные Дублировать:
Numeric validation with RegExp to prevent invalid user inputЧисловые значения только

Я новичок в Regex. Пожалуйста, помогите писать шаблон только для числовых значений (для JavaScript).

  1. только цифровые значения.
  2. разрешено десятичное слово "."
  3. нет запятые.

Спасибо!

+1

вы пытаетесь соответствовать десятичным числам или IP-адрес, как последовательности цифр и периодов? – Amarghosh

+1

@anubhava соответствует пустой строке. – Amarghosh

+0

Разрешено ли иметь цифру до десятичной точки? Разрешено ли иметь начальные нули, например. 0001? Ваши требования недостаточны. И мы любим ** помогать ** писать регулярное выражение, но ваш вопрос более «напишите регулярное выражение для меня». – stema

ответ

2

Вот great resource для игр с различными регулярными выражениями в JavaScript. Ваше конкретное выражение выглядит следующим образом:

/^[-+]?[0-9]+(\.[0-9]+)?$/ 
+0

спасибо! как я могу обновить регулярное выражение, если мне нужно разрешить одну запятую, а число будет только положительным? – ihtus

+0

@ihtus что-то вроде этого, вероятно, будет делать: '/^[0-9] + (, [0-9] +)? (\. [0-9] +)? $ /' – dasblinkenlight

1

Используйте это регулярное выражение:

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

Он не будет соответствовать. .28' – anubhava

+1

@anubhava, вопрос не говорит, что это действительный номер или нет ... –

+0

Вопрос не говорит об этом четко, но '.28' и' .15' являются действительными числами действительно. – anubhava

1

Вместо того чтобы использовать регулярные выражения и заботиться о всех перестановок ряда флоат, я хотел бы предложить следующий код, чтобы проверить, если он является действительным числом с плавающей точкой:

var s = ".45"; 
var d = parseFloat(s); 
if (!isNaN(d)) 
    alert("valid float: " + d); 

Если вы должны иметь регулярное выражение, то я хотел бы предложить:

/^[-+]?(?=.)\d*(?:\.\d+)?$/ 
+0

спасибо! как я могу обновить регулярное выражение, если мне нужно разрешить одну запятую, а число будет только положительным? – ihtus

+0

Для этого вы можете просто использовать: '/^\ +? (? =.) (?: \ D +,)? \ D * (?: \. \ D +)? $ /' – anubhava