如何使用regex表达式限制html文本框的输入?

时间:2016-12-13 17:48:12

标签: javascript regex

我是javascript的新学习者。 所以我有这个html文本框。

<form method="get" id="form" action="number.php">
    <p><input type="text" id="number" name="number" value="0,0" size="4"/></p>
</form>

使用javascript(不是jquery),正则表达式并且不更改html代码,我只想允许输入正数或pos。数字后跟一个逗号,后跟逗号后只有一个数字。

E.g。 5或23或141或0

E.g。 15,9或0,0或356,4或77,7

这是我的javascript函数的样子,但我不知道如何调用该文本字段“number”的输入函数。并且不确定我的正则表达式是否正确。

number.onkeypress = function validate(s) {
    var rgx = /^\d+(,\d{1,1})?$/  ;
    if(rgx.test(s)) { 
       return true; 
    }
    else { 
       return false; 
    } 
}

所以我的两个问题是:

  1. 如何使用正则表达式函数检查文本框的输入,以便只允许使用数字和逗号?

  2. 我的正则表达式是否正确?

1 个答案:

答案 0 :(得分:0)

你试试这个

<p><input type="text" id="number" name="number" value="0,0" onblur="javascript:validate()" size="4"/></p>

<script>

function validate() {
    var numberVar = document.getElementById("number"); 
    var rgx = /^\d+(,\d{1,1})?$/;
    if(!rgx.test(numberVar.value)) { 
       numberVar.value = "";
       numberVar.focus();
    }
}
</script>