我设置了一个检查数字,字符串和null的if语句。但是,当我输入“1a”时,它会通过我的验证。 javascript如何处理这个?这是什么类型的数据类型?
我怎么能说数字根本没有字符串
答案 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不是一种打字语言,所以基本上没有类型。