使用 jquery/javascript 的正整数值 [重复]
Posted
技术标签:
【中文标题】使用 jquery/javascript 的正整数值 [重复]【英文标题】:positive integer value using jquery/javascript [duplicate] 【发布时间】:2013-05-01 10:07:59 【问题描述】:我在我的 asp.net MVC 应用程序中使用以下 js 函数单击确定按钮,以确保在文本框中输入的值是整数,但它总是返回 false;
function isInteger(n)
return n === +n && n === (n | 0);
这是我的使用方法:
if (!isInteger(selectedPhoneValue))
$("#dialog-numeric-phonevalidation").dialog('open');
return;
请建议我如何更改此功能以仅允许不带“。”的正整数/数字值和“-”
【问题讨论】:
selectedPhoneValue
是如何收集的?
我之所以问是因为我怀疑它是直接从输入中获取的(使用input.value
或$input.val()
,等等)。但是这些方法返回你String
;在检查它是否为整数之前,您实际上应该将其显式转换为 Number(我在这里推荐 parseInt
)。
@raina77ow parseInt 会截断小数并使其为真......
该死的,当然。 ) parseFloat
应该被使用,如果想检查输入。 parseInt
在这种情况下咬紧牙关很有用。 )
3.0
有效吗?还是只有 3 个?
【参考方案1】:
你可以改用正则表达式
function isInteger(n)
return /^[0-9]+$/.test(n);
【讨论】:
012 是有效数字吗? 是的,自己试试jsbin.com/opoqid/14/edit。我们在谈论整数,不是吗?【参考方案2】:function isInteger(n)
return $.isNumeric(n) && parseInt(n, 10) > 0;
更新:
然后像这样更改 if 检查:
//Assuming selectedPhoneValue is not already converted to a number.
//Assuming you want an exact length of 10 for your phone number.
if (isInteger(selectedPhoneValue) && selectedPhoneValue.length == 10)
$("#dialog-numeric-phonevalidation").dialog('open');
return;
您可以使用此代码去除“。”和“-”字符。
selectedPhoneValue = selectedPhoneValue.replace(/-/g, "").replace(/\./g, "");
【讨论】:
以上是关于使用 jquery/javascript 的正整数值 [重复]的主要内容,如果未能解决你的问题,请参考以下文章