0

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

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

有效的表达式是+7or +9.36*8or+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.

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

4

2 回答 2

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');
        }
    }
}
于 2012-07-06T06:43:14.000 回答
1

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

于 2012-07-06T07:00:47.927 回答