如何在javaScript中为相同的数字设置2个限制,一个用于数字,第二个用于小数

时间:2016-10-13 11:18:38

标签: javascript jquery

所以我遇到了这个问题。我想要一个数字限制为15个字符,对于小数,我想要相同数字的3个字符。所以我的最终号码可以是最多15位数,但如果我想要"。"能够再添加3个小数。因此,只有当我有小数(3格言)时,我的数字才能大于15个字符。 希望我足够清楚。 感谢。

3 个答案:

答案 0 :(得分:3)

您可以使用RegExp /^\d{15}(?:\.\d{3}|$)/匹配十五位数字,或十五位数字后跟.后跟三位数字,然后是字符串结尾



var re = /^\d{15}(?:\.\d{3}|$)/;
console.log(re.test("1234567891.23456")); // false
console.log(re.test("123456789123456.123")); // true
console.log(re.test("12345678912345")); // false
console.log(re.test("123456789123456")); // true




pattern元素

上使用<input>属性

&#13;
&#13;
:invalid {
  background: red;
}
&#13;
<input required pattern="^\d{15}(?:\.\d{3}|$)">
&#13;
&#13;
&#13;

答案 1 :(得分:1)

这应该是正确的:

根据OP的要求,

可以有15个字符或11 +。+ 3 = 15个字符

:invalid {
  background: red;
}
<input required pattern="(\d{15}$)|(\d{11}\.\d{3}$)">

答案 2 :(得分:1)

这是你想要的:

$("input").keydown(function(event){
       var value=$("input").val();
   if($.inArray(event.keyCode, [48,49,50,51,52,53,54,55,56,57,46,8, 9, 27, 13, 110,190])>=0)
     {
    if(value.length>=15)
    {
      if((event.keyCode==190 || value.indexOf(".")>0) && value.length<19)
         {
           return true;
          }
        else
        {
          return false;
       }
    }}
else
{
 return false;
}
});