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,可以找到许多有趣的答案。