Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 只过滤输入数字_Javascript_Regex_Input - Fatal编程技术网

Javascript 只过滤输入数字

Javascript 只过滤输入数字,javascript,regex,input,Javascript,Regex,Input,我希望过滤我的输入,使其只能包含数字 re = /[^0-9]/; if(!re.test(form.number.value)) { alert("Member must contain only numbers. Please try again"); form.member.focus(); return false; } 但它不起作用(例如,如果我给出了输入123fd,它不会给出错误),有人能帮我吗?因为您的正则表达式正在检查非数字,因此将if条件中的否

我希望过滤我的输入,使其只能包含数字

   re = /[^0-9]/; 
if(!re.test(form.number.value)) {
    alert("Member must contain only numbers. Please try again");
    form.member.focus();
    return false;
}

但它不起作用(例如,如果我给出了输入123fd,它不会给出错误),有人能帮我吗?

因为您的正则表达式正在检查非数字,因此将if条件中的否定改为:

re = /\D/; 
if(re.test(form.number.value)) {
   alert("Member must contain only numbers. Please try again");
   // rest of code
}
而不是:

if(!re.test(form.number.value)) {...}

由于正则表达式正在检查非数字,因此将if条件中的否定更改为:

re = /\D/; 
if(re.test(form.number.value)) {
   alert("Member must contain only numbers. Please try again");
   // rest of code
}
而不是:

if(!re.test(form.number.value)) {...}

您可以使用HTML5输入类型number来仅限制数字条目:

<input type="number" name="someid" />

您可以使用HTML5输入类型number来仅限制数字条目:

<input type="number" name="someid" />

编辑抱歉,这是javascript:

 if(input == parseInt(input)){
    //OK
 }
编辑抱歉,这是javascript:

 if(input == parseInt(input)){
    //OK
 }

正则表达式只匹配数字以外的任何内容。当您否定测试时,实际上是说“匹配数字”,这意味着您没有收到非数字字符串的警报消息。例如:

!(/[^0-9]/.test('123'))
// true -> alert

!(/[^0-9]/.test('123fd'))
// false -> don't enter if clause
只需删除if语句中的感叹号即可修复代码。然而,anubhava提到的一种更清晰的测试方式是:

if (/\D/.test(form.number.value)) {
    // validation error
}

其中
\D
匹配非数字字符。

正则表达式匹配除数字以外的任何字符。当您否定测试时,实际上是说“匹配数字”,这意味着您没有收到非数字字符串的警报消息。例如:

!(/[^0-9]/.test('123'))
// true -> alert

!(/[^0-9]/.test('123fd'))
// false -> don't enter if clause
只需删除if语句中的感叹号即可修复代码。然而,anubhava提到的一种更清晰的测试方式是:

if (/\D/.test(form.number.value)) {
    // validation error
}

其中
\D
匹配非数字字符。

当你说它“不工作”时,发生了什么?有错误吗?输出是否与您预期的不同?在你的问题中添加一些输入和输出的例子。当你说“不起作用”时,发生了什么?有错误吗?输出是否与您预期的不同?在你的问题中添加一些输入和输出的例子。非常糟糕,因为它是客户端的东西,任何人都可以篡改它。没有向下投票,但也没有向上投票。非常糟糕,因为这是客户端的东西,任何人都可以篡改它。不投反对票,也不投赞成票。