我期待我过滤输入,所以它只能包含数字滤波器输入数字只有
re = /[^0-9]/;
if(!re.test(form.number.value)) {
alert("Member must contain only numbers. Please try again");
form.member.focus();
return false;
}
,但它没有工作(如果我给例如输入123fd,它不给我错误)任何人都可以帮助我?
我期待我过滤输入,所以它只能包含数字滤波器输入数字只有
re = /[^0-9]/;
if(!re.test(form.number.value)) {
alert("Member must contain only numbers. Please try again");
form.member.focus();
return false;
}
,但它没有工作(如果我给例如输入123fd,它不给我错误)任何人都可以帮助我?
因为你的正则表达式是检查非数字因此改变否定你,如果条件:
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输入类型数量仅限制数量条目:
<input type="number" name="someid" />
非常糟糕,因为它是客户端的东西,任何人都可以篡改它。 没有downvote,但没有upvote以及。 –
if($input == intval($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
匹配非数字字符。
当你说它“没有工作”,发生了什么?有错误吗?输出是否与您预期的不同?添加一些示例输入和输出到你的问题。 – Michelle