题
我想验证输入字段。用户应输入最小长度10位的电话号码。
因此,我需要检查是否有非法炭。仅检查呼啸声,这是一个不错的选择。输入是否是整数。
我想到了这个,但它不起作用(n将是字符串)。
function isInt(n){
return typeof n== 'number' && n%1==0;
}
有任何想法吗?
解决方案
您可以这样进行测试:
input.length >= 10 && /^[0-9]+$/.test(input)
如果字符串或字符串小于10个字符长,那将失败
其他提示
这应该起作用((input - 0)
自动尝试将值转换为一个数字):
function isInt(input){
return ((input - 0) == input && input % 1==0);
}
关于这个问题已经有一个问题: 验证JavaScript中的十进制数字-Numeric()
可能对您来说是个过度杀伤力,但是Google不久前宣布了 图书馆 用于电话验证。可用Java和JavaScript变体。
验证电话号码比检查输入是否是整数要复杂得多。例如,电话号码可以从零开始,因此在技术上不是INT。另外,用户可以输入破折号:例如:
00 34 922-123-456
因此,为了验证它,您有几个选择:
使用正则表达式来验证,请查看:
该网站将有数百个示例
使用循环依次检查每个字符,即字符int或Dash
我会推荐前者,因为后者取决于用户的一致输入,您不会得到
为什么不使用:
return (+val === ~~val && null !== val);
作为您功能的返回?
这是JavaScript控制台的输出
> +"foobar" === ~~"foobar"
false
> +1.6 === ~~1.6
false
> +'-1' === ~~'-1'
true
> +'-1.56' === ~~'-1.56'
false
> +1 === ~~1
true
> +-1 === ~~-1
true
> +null === ~~null // this is why we need the "&& null !== val" in our return call
true
不隶属于 StackOverflow