我想验证输入字段。用户应输入最小长度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

因此,为了验证它,您有几个选择:

  • 使用正则表达式来验证,请查看:

    http://regexlib.com/

    该网站将有数百个示例

  • 使用循环依次检查每个字符,即字符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 
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top