如何在JavaScript中仅允许数字和格式值

时间:2019-04-24 05:25:22

标签: javascript jquery html5 forms

我想知道如何验证仅允许数字的文本字段,然后使用javascript格式化值。

如何通过不允许粘贴,Ctrl,Shift,Backspace和Del以及不允许使用特殊字符和字母来验证输入文本,

{"name":"somename",
   [{"id":123,"key1":"anydata"}, 
    {"id":345,"key1":"x","key3":"yz"}]}
 <input name="samount" type="text" id="samount" class="form-control"
  @keyup=${this.formatCurrency}>


formatCurrency(e){
  var myinput = e.target.value;
      var val = myinput;
      val = val.replace(/[^0-9]/g,'');      
      if(val != "") {
        var valArr = val.split('.');
        valArr[0] = (parseInt(valArr[0],10)).toLocaleString();
        val = valArr.join('.');
      }      
      e.target.value = val;
      this.rateValue();
}

3 个答案:

答案 0 :(得分:0)

Keyup事件包含键入的键,对其进行测试(如果是parseInt或点...)。

答案 1 :(得分:0)

*尝试更新您的正则表达式,并在if条件中使用match函数检查您的字段值是否与regrex匹配。 * 每个键都有单独的键码,您可以使用该键码进行验证,以提及此键在此文本字段上不起作用

答案 2 :(得分:0)

最简单的方法是在非数字时删除键盘上的输入值。

$("#myinput").keyup(function(e) {
        if($(this).val().match(/^[0-9]+$/))
            return;
        else
            $(this).val('');
});

或者检查e.keyCode并在与范围48-5796-105不匹配的情况下阻止输入(数字键盘具有单独的键码)