0

javascriptの正規表現に基づいてテキストを検証する必要があります。私の正規表現は正常に機能していますが、Javaスクリプトで機能しない理由を見つけることができません。

正規表現はこれです、^([-+/*]\d+(\.\d+)?)*

有効な式は+7または+9.36*8または+4-9.3/5.0

無効な一致はtestまたは8.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 に答える