Мне нужно некоторое регулярное выражение, которое будет соответствовать только числам, которые десятичны в двух местах. Например
123 = Нет соответствия
12.123 = Нет соответствия
12.34 = Матч
Мне нужно некоторое регулярное выражение, которое будет соответствовать только числам, которые десятичны в двух местах. Например
123 = Нет соответствия
12.123 = Нет соответствия
12.34 = Матч
^[0-9]*\.[0-9]{2}$ or ^[0-9]*\.[0-9][0-9]$
Если вы ищете целое линейное совпадение, я бы пошел с ответом Павла.
Если вы хотите совместить число с линией, попробуйте: \d+\.\d\d(?!\d)
\d+
Одна из нескольких цифр (такая же, как [0-9]
)\.
Соответствует символу периода\d\d
Соответствует двум десятичным знакам(?!\d)
Является отрицательным взглядом, гарантирующим, что следующий символ не является цифрой.Это немного зависит от того, что не должно совпадать и что должно и в каком контексте
например, если текст, который вы тестируете, удерживает только номер? в этом случае вы можете сделать это:
/^[0-9]+\.[0-9]{2}$/
но это проверит всю строку и, таким образом, потерпит неудачу, если совпадение должно быть выполнено как часть большего целого
если он должен быть внутри более длинного шприца, который вы могли бы сделать
/[0-9]+\.[0-9]{2}[^0-9]/
но это не удастся, если строка - это только номер (так как для номера требуется нечетное число)
если вам нужно учесть оба случая, вы можете использовать следующее:
/^[0-9]+\.[0-9]{2}$|[0-9]+\.[0-9]{2}[^0-9]/
Вы также можете попробовать регулярное выражение
^\d+(\.\d{1,2})?$
or
var regexp = /^\d+\.\d{0,2}$/;
// returns true
regexp.test('10.5')
or
[0-9]{2}.[0-9]{2}
or
^[0-9]\d{0,9}(\.\d{1,3})?%?$
or
^\d{1,3}(\.\d{0,2})?$
Является ли приведенное ниже значение действительным для ввода с плавающей запятой (например, поле цены)?
0.00 в поле цены?
По мне 0,01 и 0,10 действительно, но не 0,00 не допустимо значение float