Javascript 验证整数值时如何允许空字符串

Javascript 验证整数值时如何允许空字符串,javascript,jquery,json,Javascript,Jquery,Json,希望使用JavaScript检查整数值的验证。目前,这对整数很有效,但我希望它允许一个空字符串,“ 函数validateInt(inputString,columnName){ var errorOutput=“”; var isNum=/^\d+$/.test(inputString); 如果(!isNum){ errorOutput+=“*列”+columnName+”只能包含数字。“; } 返回错误输出; } 变量isNum=…中的一个额外条件?有什么想法吗?可以简单地使用 if (!i

希望使用JavaScript检查整数值的验证。目前,这对整数很有效,但我希望它允许一个空字符串,

函数validateInt(inputString,columnName){
var errorOutput=“”;
var isNum=/^\d+$/.test(inputString);
如果(!isNum){
errorOutput+=“
*列”+columnName+”只能包含数字。“; } 返回错误输出; }

变量isNum=…
中的一个额外条件?有什么想法吗?

可以简单地使用

if (!isNum || inputString === "") {
    ...

使用
*
修饰符(零或多个)代替
+
修饰符(一个或多个):


这将只允许具有零位数(即空字符串)或某些正数位数的数字字符串。

在验证整数时,使用模数1允许空字符串:

var isNum = inputString % 1 === 0;

正如在评论中所说的,这将允许用户解析十六进制、二进制和其他数字表示。如果您不想允许这些格式,那么它可能不适合您的特定情况,但对于任何发现这种格式并需要该功能的人来说,这些格式在技术上也是整数。如果在对输入执行任何操作之前对其使用
parseInt()
,我看不出使用它有什么害处(如果我错了,请纠正我)。

在这种情况下,您无法在单个条件下重新体验If(value)或If(value==“”)。你必须为此写两份声明。如果(值| |值=='')也可以尝试

inputString.length==0?@tymeJV,你的建议太完美了。只是小小的拼写错误。它是
isNaN(inputString)
这仍然允许
作为输入。@DontVoteMeDown他说他想允许空字符串被警告,这将允许在输入字符串中使用十六进制和科学记数法:
“0xFAD”%1==0
“1e10”%1==0
都是
真的
。请参阅ES5,了解如何将字符串强制转换为整数。这应该是
==如OP希望允许的那样。还有,第一个检查
!当值为空时,isNum
将为真。因此,在使用正则表达式检查之前,需要检查空值。例如,
if(inputString!==”&&&&!isNum){
var isNum = /^\d*$/.test(inputString);
var isNum = inputString % 1 === 0;