0

我有一个 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 转换为字符串,然后它也不起作用。

4

3 回答 3

3

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

var regex = /^[0-9]{1,10}$/;
于 2013-04-12T11:54:24.337 回答
2

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

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

或者你可以使用:

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

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

于 2013-04-12T11:55:16.860 回答
0

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

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

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

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

干杯。

于 2013-04-12T11:54:52.393 回答