验证字符串的十进制输入Javascript

时间:2014-09-18 10:51:17

标签: javascript

我想验证用户输入的正确小数表单,例如用户可以输入-123.4123.4但不包括--123.4-.234..234等值 这是我到目前为止所做的,但它不能正常工作

var input  = control.value;
       var indexM = input.match((/-/g) || []).length;
       var indexD = input.match((/./g) || []).length;
        if(indexM > 1 || indexD >1  )
         {
        control.value="";
        alert('Invalid Value')
         }

3 个答案:

答案 0 :(得分:0)

如果可以接受,你可以这样做,

$(document).ready(function () {
$('[id$=txt1]').numeric({ allow: "." });
$('[id$=txt1]').numeric();
 });

其中txt1是用户输入数据的文本框的客户端实例名称。

错误答案,删除不工作。不能使用相同的将允许多个"。"并且不允许负数

答案 1 :(得分:0)

您可以使用正则表达式来验证十进制数

var input  = control.value;
var exp = /^\-?\d*\.?\d*$/;

if(!exp.test(input))
{
  control.value="";
  alert('Invalid Value')
}

答案 2 :(得分:-1)

您应该在每次点击时检查用户输入。

例如:如果输入字段id =' MyInputField"你应该使用以下代码

var decimalsRestrictions = function (field) {
$(field).bind("propertychange input", function (e) {
    var resVal = twoDecimalsRestrictions(field.val());
    if (field.val() != resVal) {
        field.val(resVal);
    }
  });
};

 var twoDecimalsRestrictions = function (num) {
   var parts;
   if (num.indexOf(".") !== -1) {
      parts = num.split(".");
      if (parts[1].length > 2) {
          return num.substr(0, num.length - 1);
      }
  }
  return num;
};

decimalsRestrictions("#MyInputField");