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