使用 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 的正整数值 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

307第 k 个缺失的正整数

3626第 k 个缺失的正整数

3626第 k 个缺失的正整数

力扣 1539. 第 k 个缺失的正整数

力扣 1539. 第 k 个缺失的正整数

力扣 1539. 第 k 个缺失的正整数