2011-02-13 11 views
0

hh:mmまたはhhmmの形式で時間(最大5文字)を入力できるテキストボックスがあります。私はちょうど特殊文字とアルファベットのために、テキストボックスに入力された文字列をスキャンする方法を教えてくれますか? [入力された文字列にこれらの文字またはアルファベットが含まれていると、警告が表示されます( 'Plsは有効な時間を入力します)')str.matchおよびstr.indexOfメソッドを試しましたが、役立たないようです。特殊文字とアルファベットの検索文字列

<script type='text/javascript'> 
    function clocks(){ 

     var clk = document.getElementById('TIME').value; 
     var ampm = document.getElementById('AMPM').value; 
var iChars = "[email protected]#$%^&*()+=-[]\\\';,./{}|\":<>?"; 

    for (var i = 0; i < 5; i++) { 
    if (iChars.indexOf(clks.charAt(i)) != -1) { 
    alert ("Pls enter a valid time"); 
    return false; 
    } 
    } 



.....} 

</script> 
+0

JavaまたはJavaScriptのソリューションをお探しですか?現在のソリューションを投稿できますか? –

+0

javascriptの時間のマスキングのためのこの投稿記事を確認してください: http://stackoverflow.com/questions/1038754/time-input-field –

+0

@Vijay:私はJavascriptで解決策が必要です。 – uno

答えて

0

どのようにstring.match()を使用していますか? 「:」

<script type='text/javascript'> 
function clocks(){ 

    var clk = document.getElementById('TIME').value; 
    var ampm = document.getElementById('AMPM').value; 

    if (clk.match(/[^0-9:]/)) { 
     alert("Please enter a valid time"); 
    } 

    // or, an even more precise regex 
    if (!clk.match(/^\d+:\d+$/)) { 
     alert("Please enter a valid time"); 
    } 
.....} 

</script> 

最初の正規表現マッチが数字またはされていないことを何のためにチェックする必要があります:これは動作するはずの文字、そしてそれが何かを見つけた場合、アラートを上げます。 2番目の文字列は、1つ以上の数字で始まり、次に ':'文字、1つ以上の数字、そして文字列の終わり(一致するフォーマット)のいずれかに一致します。

+0

ありがとう!私があなたが言及した最初のものを使用し、それは完全に動作します!もう一度ありがとうございます:D – uno

+1

正規表現の 'test()'メソッドを使うと、より効率的です: '/ [^ 0-9:] /。test(clk)' –