3

想知道如何只接受从 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.');
}
4

3 回答 3

1

您在onkeyup属性末尾缺少一个结束引号,正如大卫所提到的,您需要将您的正则表达式字符串更改为/[1-9]/

于 2011-05-16T14:55:33.300 回答
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
于 2011-05-16T14:55:35.100 回答
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/

于 2011-05-16T15:02:46.800 回答