【问题标题】:Test Int value in Javascript (Regular Expression)在 Javascript 中测试 Int 值(正则表达式)
【发布时间】:2013-04-04 22:35:42
【问题描述】:

我有一个 javascript 函数,它将 Ajax 组合框中输入的文本与正则表达式进行匹配。 但似乎“测试”没有按预期工作。 下面是我的代码,我没有找到我做错的地方。

 <script language="javascript" type="text/javascript">
    function cmbExample_OnBlur() {
        var regex = "^[0-9]{1,10}$";
        var sel = document.getElementById("MainTextBox").value;
        alert(sel);
        if (regex.test(sel)) {
            alert("success");
        }
        else {
            alert("error");
        }

    }

我尝试将 sel 转换为字符串,然后它也不起作用。

【问题讨论】:

  • 你的输入是什么?

标签: javascript regex int


【解决方案1】:

尝试使用实际的正则表达式,而不是字符串。

var regex = /^[0-9]{1,10}$/;

【讨论】:

  • OP: ..并注意正则表达式所说的是“0到9之间的任何数字,重复1到10次”。您很可能知道这一点,但有些人会将 {} 运算符与数字的范围混淆。
  • 避免标题 0 /^(?!0)\d{1,10}$/
【解决方案2】:

您需要使用以下方式从组合框中获取值:

document.getElementByID("SelectBoxName").options[document.getElementByID("SelectBoxName").selectedIndex].value

这有点恶心,但确实有效。您可以使用 .text 来获取文本而不是值(我认为这是您真正想要的。)

另外,其他人对正则表达式的说法是正确的。

干杯。

【讨论】:

  • 我使用了另一种从组合框中获取所需值的方法,这也可以正常工作。谢谢!
【解决方案3】:

那不是正则表达式,那是一个字符串。正则表达式文字将是:

var regex = /^[0-9]{1,10}$/

或者你可以使用:

var regex = new RegExp("^[0-9]{1,10}$");

顺便说一句,如果您查看控制台(大多数系统上为 F12),错误消息应该已经说明了这一点。

【讨论】:

  • 不客气,我很高兴能帮上忙! =)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-19
相关资源
最近更新 更多