2016-10-13 62 views
1

所以我有這個問題。我希望限制15個字符的數字和3個字符的相同數字只能用於小數。所以我的最終號碼可以是最多15位數字,但如果我想在「。」之後。能夠增加3個小數。所以我的號碼不能超過15個字符,只有我有小數(3格言)。 希望我很清楚。 謝謝。如何把2限制在同一個數字,一個數字和第二個爲小數的javaScript中的2個限制

+0

那麼它可以是19個? 15 + 「」 + 3?或15是硬 - 最大,所以15沒有小數或13 +「。」+ 1dp或11 +「。」+ 3dp(etc)? –

+0

它可以是19個只有15 +「。」 + 3,或沒有「。」。最大值15. –

+0

是''元素的字符串值嗎? – guest271314

回答

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>元素

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

+0

純粹的天才:)偉大的解決方案..謝謝很多。 –

+0

「天才」對你來說是一個完美的男人:) –

+0

@AndreiChivu查看更新後的帖子。將RegExp減少了幾個字符。 – guest271314

1

這應該是正確的:

如問由OP,存在既可以15個字符或11 + + 3 = 15個字符

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

+0

_「It can be 19chars only」_'11 + 4 === 15 && 11 + 4!== 19' – guest271314

+0

awww得到它,只需再次閱讀要求:),謝謝 –

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; 
} 
}); 
+0

這是完美的。 –

+0

@AndreiChivu如果這對您有用,請將其標記爲正確答案。 –

+0

http://unixpapa.com/js/key.html但有一些兼容性問題。 –

相關問題