1

私は0-9の数字だけを許可する次のコードを持っています。
しかし、私は-(ハイフン)も許可したい。[-ASCIIコードは45]
私はそれを試した..しかし役に立たない..私のコードを更新できますか?

関数isNumericKey(e)
        {{
        if(window.event){var charCode = window.event.keyCode; }
        else if(e){var charCode = e.which; }
        else{trueを返します; }
        if(charCode> 31 &&(charCode <48 || charCode> 57)){falseを返す; }
        trueを返します。
    }
    関数submitMyNumber()
    {{
        var input = document.getElementById('myInput')。value;
        input.match(/ ^ [0-9-] + $ /)!=nullを返します。
    }

<form> <input type="text" id="myInput" name="myInput" onkeypress="return isNumericKey(event);" /><br /> <input type="submit" id="mySubmit" name="mySubmit" value="Submit My Number" onclick="return submitMyNumber();" /> </form></pre>

Laxman Chowdary

4

2 に答える 2

0

45文字のコードをフィルタリングしているようです

 function isNumericKey(e)
        {
        if (window.event) { var charCode = window.event.keyCode; }
        else if (e) { var charCode = e.which; }
        else { return true; }
        if (charCode == 45 || (charCode >= 48 && charCode <= 57)
           return true;
        else
           return false;
    }

うまくいくでしょう。

正規表現で範囲を指定するときは、ハイフンから始めてください。

 /^[-0-9]+$/
    ^-- here

 /^[0-9-]+$/
       ^--- does not work here 

日付を一致させたい場合、パターンはおそらくdd-dd-ddのようなものです(ただし、どの形式ですか?ISO YYYY-MM-DD?または他の何か)より正確なパターンになります。

 /^\d{4}-\d{2}-\d{2}$/

おそらくこれが良いでしょう

 /^[12]\d{3}-[01]\d-[0-3]\d$/

DD-MM-YYYYの場合、パターンを元に戻すのは非常に簡単です。

 /^[0-3]\d-[01]\d-[12]\d{3}$/
于 2012-06-28T06:45:56.873 に答える
0

2012年6月29日、つまり2桁のハイフン2桁のハイフン4桁の日付パターンを受け入れる場合、正規表現は次のようになります。[0-9]{2}-[0-9]{2}-[0-9]{4}

于 2012-06-28T07:14:53.893 に答える