Javascript JQuery:验证价格浮动(7,2)

Javascript JQuery:验证价格浮动(7,2),javascript,php,jquery,validation,Javascript,Php,Jquery,Validation,我正在使用jquery验证插件 我必须验证价格输入 我的数据库中的列是float(7,2) 所以我的价格可以接受 最多7个不带逗号的数字 或 逗号前5个数字,逗号后2个数字(最大值) 我已经用这段php代码在服务器端进行了验证 if (strstr($price, '.') && (strlen(substr(strrchr($price, "."), 1)) > 2 || strlen($price) > 8 ) ) { echo "invalid f

我正在使用jquery验证插件
我必须验证价格输入
我的数据库中的列是float(7,2) 所以我的价格可以接受

  • 最多7个不带逗号的数字 或
  • 逗号前5个数字,逗号后2个数字(最大值)
我已经用这段php代码在服务器端进行了验证

if (strstr($price, '.') && (strlen(substr(strrchr($price, "."), 1)) > 2 || strlen($price) > 8 )  ) {
    echo "invalid format";
}
elseif (!strstr($price, '.')) {
    if(strlen($price) > 5 )
    {
        echo "invalid format";
    }
}
我需要在客户端使用jquery验证插件添加新方法进行同样的验证
但我找不到真正的reg表达式来实现这一点

更新

详细说明:
我需要接受任何小于或等于7位的数字,如(12-1234-1234567)。。以及逗号前小于或等于5位,逗号后小于或等于2位的任意数字,如(123.1-12345.12-12.23)

更新

详细说明:我需要接受任何小于或等于7的数字 像(12-1234-1234567)。。任何数字都可以少一点 逗号前小于或等于5位,小于或等于2位 在逗号之前(123.1-12345.12-12.23)

逗号前的“小于或等于2位”应为“逗号后的小于或等于2位”


编辑,更新

您可以将
pattern
属性与
RegExp
\d{1,5}、\d{1,2}\d{1,7}



客户端验证可以立即反馈给用户,但也不要因为在客户端进行了服务器端验证而跳过服务器端验证。客户在撒谎。
/^\d{7}$/
/^\d{5}\.\d{2}$/
,现在您所要做的就是加入them@MarcB:是的,当然,我已经做了服务器端验证:)@adeneo谢谢你的帮助(y)“逗号前小于或等于2位,比如“你是说逗号后的”吗?我想RegExp\d{5}、\d{2}\d{7}需要一些更新。它在所有情况下(12或123,2或123456)都显示错误消息,只接受两种情况(1234567或12345,12)(我指的是最大值(7个数字)或(逗号前5个,逗号后2个))您的意思是什么?唯一有效值为a)七位数字;或者b)五位数后跟逗号后跟两位数,是吗?是的,您的RegExp只接受7位数,或者5位数后跟逗号,然后是2digits@user6534060“是的,您的RegExp只接受7位或5位,然后逗号,然后是2位”这是要求,是吗?“否,我需要接受小于或等于7位的任何数字,如(12-1234-1234567)
任何小于5”的数字,这不是原始问题中的要求描述?