【发布时间】:2015-05-21 20:41:22
【问题描述】:
我有 JS 代码来验证邮政编码:10 个数字字符,第 6 位带有破折号(例如,12345-6789)。我使用!isNaN 验证这两个部分都是数字。
if (valSize == 10) {
var numVal1 = new Number(newVal.substring(0, 4));
var numVal2 = new Number(newVal.substring(6, 9));
if (newVal.charAt(5) == '-' && !isNaN(numVal1) && !isNaN(numVal2)) {
return newVal;
}
}
throw "Incorrect format";
这主要是可行的,但由于某种原因,以下值通过,并且不返回错误:
12345-678a
为什么 !IsNaN(substring(6,9)) 在这种情况下允许通过?
【问题讨论】:
-
旁注:有人说异常应该用于异常的事情,输入验证并不完全是异常的。
标签: javascript string numbers nan