使用javascript进行正则表达式验证

时间:2012-07-06 06:36:51

标签: javascript regex

我需要根据javascript中的正则表达式验证文本。我的正则表达式工作正常,但无法找出它在java脚本中不起作用的原因。

正则表达式为^([-+/*]\d+(\.\d+)?)*

有效表达式为+7+9.36*8+4-9.3/5.0

无效匹配为test8.36

这是代码,

    var ck_diffrentialformula = /^([-+/*]\d+(\.\d+)?)*/;

            function radtxtbxLinkedDifferentialFormulaOnBlur(sender, eventArgs) {
                if (sender.get_value().length > 0) {

                    var entered_value = sender.get_value();

                    if (ck_diffrentialformula.test(entered_value)) {
                     alert('Text Matches');
                    }
                    else {
                     alert('Text does not match');
                    }
                }
            }

sender.get_value() - gives the text box value over here.

请告诉我我在哪里做错了。

2 个答案:

答案 0 :(得分:2)

我假设你正在使用这样的东西:

<input type="text" onchange="radtxtbxLinkedDifferentialFormulaOnBlur(this,null)" />

sender没有方法.get_value(),因此甚至不起作用。取而代之的是,似乎有效。

function radtxtbxLinkedDifferentialFormulaOnBlur(sender, eventArgs) {
    console.log(sender)
    if (sender.value.length > 0) {
        console.log(sender.value);
        if (ck_diffrentialformula.test(sender.value)) {
         console.log('Text Matches');
        }
        else {
         console.log('Text does not match');
        }
    }
}

答案 1 :(得分:1)

也许你想试试这个表达:/^([\-+\/*]\d+(\.\d+)?)*$/
它在正则表达式中逃避“ - ”和“/”(jsbin建议),并考虑整个字符串($在最后)。