我想验证输入字段。用户应该输入一个最小长度为10位的电话号码。检查整数的字符串
所以我需要检查非法字符。只要检查输入是否是整数就好了。
我想出了这个,但它不起作用(n将是字符串)。
function isInt(n){
return typeof n== 'number' && n%1==0;
}
任何想法?
我想验证输入字段。用户应该输入一个最小长度为10位的电话号码。检查整数的字符串
所以我需要检查非法字符。只要检查输入是否是整数就好了。
我想出了这个,但它不起作用(n将是字符串)。
function isInt(n){
return typeof n== 'number' && n%1==0;
}
任何想法?
你可以做这样一个试验:
input.length >= 10 && /^[0-9]+$/.test(input)
如果有字符串中的非数字字符或字符串长度
+1回答实际问题(虽然可能很好,检查它是否已经是一个数字)。但正如Diodeus指出的那样,电话号码不是整数,以另一种方式操作OP将会很好。 – 2011-01-14 14:16:36
可能是你矫枉过正,不到10个字符将会失效,但谷歌不久前宣布用于手机验证的library。 Java和Javascript变体可用。
这应该工作((input - 0)
自动尝试值将数字转换):
function isInt(input){
return ((input - 0) == input && input % 1==0);
}
已经有关于这个问题的SO-问题:Validate decimal numbers in JavaScript - IsNumeric()
验证电话号码是有点比检查输入是否是整数更复杂。作为一个例子,电话号码可以并且以零开始,所以它在技术和整数上都不是。此外,用户还可以输入破折号:例如:
00 34 922-123-456
所以,作为验证它,你有两个选择:
使用正则表达式验证,看看:
本网站将有数百个例子
使用循环来检查依次对每个字符,即是人品int或破折号
我会推荐前者,因为后者从用户依赖于一致输入,你是不会得到那个
为什么不使用:
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
如果有什么的输出加上几句诸如“555-1212分机323”? – 2011-01-14 14:08:11
http://www.smartwebby.com/DHTML/phone_no_validation.asp – 2011-01-14 14:11:49