十进制后允许4位数和小数点前2使用javascript

时间:2014-04-17 08:13:07

标签: javascript jquery regex validation

我有一个脚本来检查文本框中的insertvalue。

<input type="number" onkeypress="return isNumber(event)" />
<script>
function isNumber(evt) {
    evt = (evt) ? evt : window.event;
    var charCode = (evt.which) ? evt.which : evt.keyCode;
    if (charCode > 31 && (charCode < 48 || charCode > 57)) {
        return false;
    }
    return true;
}
</script>


这个脚本很好,只允许编号。
但我希望脚本检查这种情况。
0.123456 11.12345

文本框中的总共7位数 如果在十进制2位数之前,则在小数点后4 如果在小数点1之前,则小数点后的5位数

它是如何工作的任何脚本或其他任何有用的东西。
感谢

5 个答案:

答案 0 :(得分:1)

您可以使用以下regex

^(\d\.\d{5}|\d{2}\.\d{4})$

演示:http://regex101.com/r/nW5qI7

答案 1 :(得分:1)

我使用autoNumeric.js进行小数操作,这真的很棒。

您可以查看网站以获取更多信息,但是您需要使用(当然在添加库并调用init后)

data-v-max="99.9999" data-m-dec="5"
输入属性中的

<强> FIDDLE

答案 2 :(得分:1)

用户界面提示:从不阻止用户输入他们想要的内容。

当用户完成输入(即。onbluronchange,无论你想要什么)时,然后检查输入是否与您的格式匹配,如果没有,则无缝通知

HTML5为您神奇地做到了这一点。

 <input type="text" pattern="[0-9]\.[0-9]{5}|[0-9]{2}\.[0-9]{4}" />

注意使用text而不是number - 使用具有特定十进制数字格式的number太难以理解了。

答案 3 :(得分:0)

    var num = $('#number').val();
    if(num && !isNaN(num * 1)) {
        if(num.replace(/\./, '').length != 7) {
            return false;
        }   
    }

答案 4 :(得分:0)

如果您没有使用HTML5而且不知道正则表达式

var num = $('#number').val();
var nString = String(num);
var nArray = nString.split('.');

if((nArray[0].length == 1 && nArray[1].length == 6) || (nArray[0].length == 2 && nArray[1].length == 5))
{
      //do something
}
else
      return false;