Javascript输入绝育,试图防止字符串进入我的号码字段

时间:2016-08-25 18:43:09

标签: javascript

我设置了一个检查数字,字符串和null的if语句。但是,当我输入“1a”时,它会通过我的验证。 javascript如何处理这个?这是什么类型的数据类型?

我怎么能说数字根本没有字符串

3 个答案:

答案 0 :(得分:2)

您可以使用正则表达式来检查它是否为数值

 var reg = new RegExp(/^\d+$/);
 reg.test(yourValue);

答案 1 :(得分:1)

一个简单的解决方案是让浏览器使用输入类型number来处理您的验证:

<input type="number">

要在JavaScript中验证它,您可以使用Number()构造函数并检查NaN。但请注意,它不仅接受数字:

console.log(Number('1a'))  // NaN
console.log(Number('1'))   // 1
console.log(Number('1.2')) // 1.2
console.log(Number('1e2')) // 100

parseInt() / parseFloat()无法解决您的问题,因为它会忽略尾随的非数字:

console.log(parseInt('a1'))   // NaN
console.log(parseInt('1a'))   // 1
console.log(parseInt('1'))    // 1

console.log(parseFloat('a1')) // NaN
console.log(parseFloat('1a')) // 1

答案 2 :(得分:0)

我假设您的意思是将1a输入到输入框并在JS函数中接收它以检查用户输入的内容?如果是这样,任何进入你的函数的东西都是一个字符串。如果是这种情况,您可以:

1-通过执行数字(“1a”)检查输入,如果它不是数字则返回NaN,否则数字(“1”)将返回1.

2-使用输入类型=数字。

3-使用输入掩码库来防止用户输入字母和仅输入数字。在这种情况下,您不需要检查JS方面。这样的事情可能就是你想要的:https://github.com/RobinHerbots/jquery.inputmask

作为一个注释,重要的是要说JS不是一种打字语言,所以基本上没有类型。