如何在javaScript中对同一个数字设置两个限制,一个用于数字,另一个用于小数

如何在javaScript中对同一个数字设置两个限制,一个用于数字,另一个用于小数,javascript,jquery,Javascript,Jquery,所以我有这个问题。我希望一个数字限制为15个字符,同一个数字限制为3个字符,仅限小数。因此,我的最终数字可以是最多15位的数字,但如果我想在“.”之后再加上3位小数。所以我的数字不能超过15个字符,只要我有小数(3个最大值)。 希望我说得够清楚。 谢谢。您可以使用RegExp/^\d{15}(?:\.\d{3}}$)/匹配15位数字,或者15位数字后跟三位数字,后跟字符串结尾 var re=/^\d{15}(?:\.\d{3}}$)/; console.log(重新测试(“1234567891

所以我有这个问题。我希望一个数字限制为15个字符,同一个数字限制为3个字符,仅限小数。因此,我的最终数字可以是最多15位的数字,但如果我想在“.”之后再加上3位小数。所以我的数字不能超过15个字符,只要我有小数(3个最大值)。 希望我说得够清楚。
谢谢。

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

var re=/^\d{15}(?:\.\d{3}}$)/;
console.log(重新测试(“1234567891.23456”);//假的
console.log(重新测试(“123456789123456.123”);//真的
console.log(重新测试(“12345678912345”);//假的

console.log(重新测试(“123456789123456”);//true
您可以使用
RegExp
/^\d{15}(?:\.\d{3}}$)/
匹配十五位数字,或者十五位数字后跟三位数字,后跟字符串末尾

var re=/^\d{15}(?:\.\d{3}}$)/;
console.log(重新测试(“1234567891.23456”);//假的
console.log(重新测试(“123456789123456.123”);//真的
console.log(重新测试(“12345678912345”);//假的

console.log(重新测试(“123456789123456”);//正确
这应该是正确的:

根据OP的要求,可以有15个字符或11+。+3=15个字符

:无效{
背景:红色;
}

这应该是正确的:

根据OP的要求,可以有15个字符或11+。+3=15个字符

:无效{
背景:红色;
}

这是您想要的工作方式:

$("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;
}
});
$(“输入”).keydown(函数(事件){
var值=$(“输入”).val();
如果($.inArray(event.keyCode[48,49,50,51,52,53,54,55,56,57,46,8,9,27,13,110190])>=0)
{
如果(值.长度>=15)
{

如果((event.keyCode==190 | | value.indexOf(“.”>0))和&value.length这是您想要的:

$("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;
}
});
$(“输入”).keydown(函数(事件){
var值=$(“输入”).val();
如果($.inArray(event.keyCode[48,49,50,51,52,53,54,55,56,57,46,8,9,27,13,110190])>=0)
{
如果(值.长度>=15)
{

如果((event.keyCode==190 | | value.indexOf(“.”>0)和&value.length,那么它可以是19chars?15+”“+3”,或者是15是硬最大值,那么15没有小数或13+”“+1dp或11+”“+3dp(等)?它可以是19chars,只有15+”+3,或者没有“.max 15。是
元素的字符串值吗?是的。是的。我有一个表单。所以它可以是19chars?15+”+3?或者15是硬最大值,所以15没有小数或13+“+1dp或11+”+3dp(等等)?它可以是19个字符,只有15+“+3,或者没有。”。最大值15。是
元素的字符串值吗?是的。我有一个表单。“它只能是19个字符”
11+4==15&&11+4!==19
“它只能是19个字符”
11+4===15&&11+4!==19
@AndreiChivu请参阅更新的帖子。将
RegExp
减少了几个字符。我仍然有一些问题,您的验证对于少于15个字符的数字失败。我希望能够有123或123.123这样的值。@AndreiChivu您所说的“只能是19个字符15+”是什么意思。+3或不带“.”最多15"?使用建议的编辑来
RegExp
是否解决了前面评论中描述的问题?@AndreiChivu请参阅更新的帖子。将
RegExp
减少了几个字符。我仍然有一些问题,您的验证对于少于15个字符的数字失败。我希望能够有像123或123.123这样的值。@AndreiChivu做了什么你的意思是“它可以是19个字符,只有15+”“+3,或者没有。”“最多15”?使用建议的编辑来
RegExp
解决之前评论中描述的问题吗?@AndreiChivu如果这对您有效,请将其标记为正确答案。它部分有效,并且仅适用于Chrome。使用您的代码,我可以输入小于15的数字和大于3位小数的数字。这是不正确的。正如我之前提到的,t代码类型与其他浏览器(如opera或Mozilla)有问题。我不能使用退格来表示完整的数字。@AndreiChivu如果这对您有效,请将其标记为正确答案。它部分有效,仅适用于Chrome。使用您的代码,我可以输入小于15的数字,大于3位小数。。这是不正确的。正如我提到的那样因此,这种类型的代码与其他浏览器(如opera或Mozilla)有问题。我不能使用backspace来表示完整的数字。