<input type =“”text“”maxlength =“”4“”/>不应计算maxlength中的逗号和点数

时间:2017-05-25 07:19:07

标签: javascript html angularjs typescript

我有输入字段,其中包含数字和特殊字符,例如逗号和点 在计算字段的maxLength时,我想跳过特殊字符。

我不想限制特殊字符。

预期输出应为: - 1,234(总长度: - 4)

<form action="/action_page.php">
       Username: <input type="text" maxlength="3" id="myId"/>
    <input type="submit" value="Submit">
 </form>

jsfiddle link here

3 个答案:

答案 0 :(得分:2)

尝试添加此javascript:

 window.onload = function() {

    var textInput = document.getElementById("myId");

    textInput.oninput = function() {
      var temp;
      temp = this.value.replace(/[^\w\s]/gi,'');
      if (temp.length > 3) {
        alert("Invalid"); // Or other stuff you want to do
      }
    };
  };

请注意,此代码会实时检查输入

答案 1 :(得分:0)

这应该使用javascript:

完成
var input = document.getElementById('myId');

input.addEventListener('keyup', function () {
  // Checking length of string ignoring all non-digit and non-letter characters
  if (this.value.replace(/[^\d|[^a-zA-Z]]*/g, '').length == 3) { 
    console.log('stop and do whatever you need')
  }
})

答案 2 :(得分:0)

您可以尝试使用HTML5 pattern属性。而不是maxlength键入pattern并给它一些正则表达式。可以做这样的事情:

<form action="/action_page.php">
       Username: <input type="text" pattern="(?(?=^.\d{1,3},\d{1,3}$)^.{5}$|^.{4}$)" id="myId"/>
    <input type="submit" value="Submit">
 </form>