仅接受1到9之间的数字使用JavaScript

时间:2011-05-16 14:48:37

标签: javascript input numbers inputbox

想知道如何只接受从1到9输入到输入框的号码,如果输入例如0,则发出警告信息,抱歉不是有效号码。

请检查我迄今为止所做的功能,但不能正常工作..谢谢

<input name="number1" type="text" size="1" id="number1"onkeyup="doKeyUpValidation(this)/>

doKeyUpValidation(text){
var validationRegex = RegExp(/[-0-9]+/, "g");
if(!validationRegex.match(text.value)
{
 alert('Please enter only numbers.');
}

3 个答案:

答案 0 :(得分:1)

您错过了onkeyup属性末尾的结束语,正如David所提到的,您需要将正则表达式字符串更改为/[1-9]/

答案 1 :(得分:1)

你非常接近。试试这个:

function doKeyUpValidation(text) {
    var validationRegex = RegExp(/[1-9]+/, "g");  // The regex was wrong
    if( !validationRegex.match(text.value) )
    {
        alert('Please enter only numbers.');
    }
} // this was missing before

答案 2 :(得分:0)

您的HTML稍有不妥,应该是:

<input name="number1" type="text" size="1" id="number1" onkeyup="doKeyUpValidation(this)"/>

每个属性之间需要一个空格,每个属性都需要引用。

此外,您的JavaScript有一些错误。它应该是:

function doKeyUpValidation(text) {
    var validationRegex = /[1-9]/g;
    if (!validationRegex.test(text.value)) {
        alert('Please enter only numbers.');
    }
}

您需要使用function关键字使doKeyUpValidation成为一个函数。此外,你的正则表达式有点偏。

演示:http://jsfiddle.net/EqhSS/10/