【问题标题】:RegExp to allow only positive integer and decimal [duplicate]正则表达式只允许正整数和小数[重复]
【发布时间】:2016-01-14 07:27:55
【问题描述】:

我正在尝试将字符与正则表达式匹配以仅允许正数和十进制值。下面的正则表达式工作正常,但我可以填充两个小数点。

jQuery

$(".qtyValidation").keypress(function (e) {
    if (String.fromCharCode(e.keyCode).match(/[^0-9\.]/g)) return false;
});

输入字段

<input class="mt-my-prices-product-quantity qtyValidation" min="0" type="number" value="1">

它不允许使用负数,但它允许像这样的 1..2 或 1.56.45。

正则表达式只允许使用一个小数点。

【问题讨论】:

标签: javascript jquery html regex


【解决方案1】:

试试这个:

if (String.fromCharCode(e.keyCode).match(/^[0-9]+(\.[0-9]{1,2})?$/g)) return false;

(.[0-9]{1,2})?只允许两位小数

(.[0-9]+)?允许任意位数的小数

【讨论】:

  • 这将匹配任意数量的小数,被否决。
  • ^[0-9]+(\.[0-9]{1,2})?不会匹配任何小数位数。请解释你的评论?
  • 是的,它会的。这是公然错误的。在您的控制台中运行以下命令:/^[0-9]+(\.[0-9]{1,2})?/.test('123.456')。要解决此问题,您需要将 $ 添加到您的表达式中。
  • 是的...我忘了$。谢谢。
猜你喜欢
  • 2021-07-26
  • 1970-01-01
  • 2020-12-20
  • 2015-02-20
  • 2022-07-15
  • 1970-01-01
  • 2017-01-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多