得到整数值从一个文本时,如何检查,如果这是南或空等?
-
16-09-2019 - |
题
我拉一价值通过JavaScript从一个文本框。如果文本是空的,它返回 NaN
.我想要返回的一个空串如果它是空,空,等等。
什么检查我做什么? if(NAN = tb.value)
?
解决方案
嗯,事情是腥在这里。
在什么浏览器不会一个空文本框返回南?我从来没见过这种情况发生,我无法再现。
值的文字框中,实际上是一串。一个空文本框返回的一个空弦!
哦,如果要检查的东西是南,你应该使用:
if (isNaN(tb.value))
{
...
}
注:的 isNaN()
-功能返回 true
为什么不能分析为一个数字,除了空串。这意味着这是一个很好的检查数字输入(比更容易regex):
if (tb.value != "" && !isNaN(tb.value))
{
// It's a number
numValue = parseFloat(tb.value);
}
其他提示
你也可以做这种方式:
var number = +input.value;
if (input.value === "" || number != number)
{
// not a number
}
南等于什么,甚至没有本身。
如果你不喜欢使用的+转自串号码,使用正常的确给出,但记住一直得到基地
var number = parseInt(input.value, 10)
否则,"08"变为0因为Javascript认为这是一个八号。
假设你有一个参考文本输入栏:
function getInteger(input) {
if(!input || !input.value) return "";
var val = parseInt(input.value, 10);
if(isNaN(val)) return "";
else return val;
}
有一件事你能做的就是regex检查的价值的文本,并确保它符合本格式的一种被接受的数量,然后,如果它符合本格式执行你的过程,否则返回的一个空串。
编辑:这是一个例子是从一些代码,我在我的前面(可能不是最好的经常表达):
var anum=/(^\d+$)/;
if (!anum.test(document.getElementById("<%=txtConceptOrderValue.ClientID %>").value))
{
alert("Order Value must be a valid integer");
document.getElementById("<%=txtConceptOrderValue.ClientID %>").focus();
return false;
}
编辑2:我还应该注意到,我在使用ASP.NET 这就是为什么我在稍时髦的方式访问该文本框。在你经常JavaScript的情况下,它可能不会为混乱。
不隶属于 StackOverflow