Javascript 仅允许输入字段中有一个点

Javascript 仅允许输入字段中有一个点,javascript,jquery,validation,Javascript,Jquery,Validation,我有一个输入字段,它有: $(".double").alphanumeric({allow:" ",ichars:"`~!@#$%^&*=_+[]\\{}|;\":,/<>?'-()\/abcdefghijklmnopqrstuvwxyzABCDFEGHIJKLMNOPQRSTUVWXYZ"}); $(“.double”).字母数字({allow:”,ichars:“`~!@$%^&*=“,/?”-()\/abcdefghijklmnopqrstuvxyzabcdfeghi

我有一个输入字段,它有:

$(".double").alphanumeric({allow:" ",ichars:"`~!@#$%^&*=_+[]\\{}|;\":,/<>?'-()\/abcdefghijklmnopqrstuvwxyzABCDFEGHIJKLMNOPQRSTUVWXYZ"});
$(“.double”).字母数字({allow:”,ichars:“`~!@$%^&*=“,/?”-()\/abcdefghijklmnopqrstuvxyzabcdfeghijklmnopqrstuvxyz”);
对其进行验证

我需要进一步限制输入,以便只能添加一个小数位,例如100.00或255.95

输入是用于货币的,所以我只需要允许1个小数点。目前它允许100.00.00,这会弄乱系统


谢谢这里有一个只允许正/负十进制数的正则表达式

^[-]?((\d+)|(\d+\.\d+)|(\.\d+))$
使用jquery可以测试值

if (/^[-]?((\d+)|(\d+\.\d+)|(\.\d+))$/.test($(".double").val())) { .... }

允许可选的前导+或-的简单函数是:

function validate(value) {
  var re = /^[-+]?\d+(\.\d+)?$/;
  return re.test(value);
}
但是,由于您想要钱,您可能需要:

  var re = /^[-+]?\d+(\.\d\d)?$/;

如果有小数点后两位,则需要小数点后两位。

这与PHP有什么关系?您发布了带有插件的jQuery。您是否正在尝试验证数据服务器端?抱歉!我只是用来发布PHP问题。“这会把系统搞得一团糟。”“我希望您不要依赖客户端验证来防止服务器端出错,因为这注定会失败!完全不是,但出于某种原因,它存储了250.95.00中的95.00。它不会从字面上扰乱系统,只是没有存储正确的值。稍微缩短:
^-?(\d+(\.\d+)\124\.\ d+)$
这很好。但是另一个问题是,我如何只允许小数点出现一次?它仍然允许我键入100.00.00,但在提交时验证无效。这更具挑战性,可以作为一个单独的问题。您可以搜索Google和Stackoverflow,可以找到许多有趣的答案。